CINXE.COM

OneLook Dictionary Search and Thesaurus

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Gabarito:wght@400..900&family=Montserrat:wght@200;400;500&display=swap" rel="stylesheet"> <meta property="og:image" content="https://onelook.com/img/onelook2.png" /> <meta property="og:image:width" content="261" /> <meta property="og:image:height" content="74" /> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KCYRT3J03G"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KCYRT3J03G'); gtag('config', 'AW-1072671259'); </script> <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png"> <link rel="manifest" href="/manifest.json"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-TileImage" content="/mstile-144x144.png"> <meta name="theme-color" content="#ffffff"> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="/ol2.css?v=25"> <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" /> <title>OneLook Dictionary Search and Thesaurus</title> <meta name="verify-v1" content="sB0hHHVrwGNsQx2rlf03XszL/j2wus02u/deZpkKddw=" /> <style> a:hover { text-decoration: bold; color: #FF0000; } a:active { text-decoration: bold; color: #FF0000; } </style> </head> <body> <link href="//cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"> <style type="text/css"> #mc_embed_signup{background:#fff; false;clear:left; font:12px; color: grey; font-family: sans-serif,arial,helvetica; max-width: 400px; border: 2px solid #ccf; border-radius: 10px; padding: 10px;} </style> <center> <div class="ol_logo"> <a href="/?loc=lhp"> <div class="ol_logo_sunburst"> <svg id=logoray xmlns="http://www.w3.org/2000/svg" height="60px" viewBox="0 -1040 1040 1040" width="60px" fill="#f1cc39"> <path d="M450-810v-110h60v110h-60Zm0 770v-110h60v110h-60Zm360-410v-60h110v60H810Zm-770 0v-60h110v60H40Zm702-250-43-43 66-66 43 43-66 66ZM195-151l-43-43 66-66 43 43-66 66Zm570 0-66-66 43-43 66 66-43 43ZM218-700l-66-66 43-43 66 66-43 43Zm261.82 445Q386-255 320.5-320.68 255-386.35 255-480.18q0-93.82 65.68-159.32 65.67-65.5 159.5-65.5 93.82 0 159.32 65.68 65.5 65.67 65.5 159.5 0 93.82-65.68 159.32-65.67 65.5-159.5 65.5Zm.11-60Q549-315 597-362.93q48-47.94 48-117Q645-549 597.07-597q-47.94-48-117-48Q411-645 363-597.07q-48 47.94-48 117Q315-411 362.93-363q47.94 48 117 48Zm.07-165Z"/> <circle id=logosun cx="480" cy="-480" r="200" fill="#f1cc39"/> </div> <span class="ol_logo_text">OneLook</span></a></div> </center> <style> button { padding: 6px 10px; cursor: pointer; font-size: 0.8em; } </style> <center><strong>Featured word games</strong></center> <br> <center> <style> /* Basic reset */ /* Container for the three boxes */ .games-container { font-family: "Gabarito", sans-serif; display: flex; /* Enable flex layout */ flex-wrap: wrap; /* Allow wrapping on smaller screens */ justify-content: center; /* Center the boxes horizontally */ gap: 20px; /* Space between items */ max-width: 1200px; margin: 0 auto; /* Center container in the page */ } /* Individual game box styling */ .game-box { flex: 1 1 200px; max-width: 200px; background: linear-gradient(135deg, #1c39bb, orange); border-radius: 8px; padding: 20px; color: #fff; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.1); display: flex; flex-direction: column; justify-content: space-between; } .game-box h2 { margin-bottom: 10px; font-size: 1.5rem; } .game-box p { margin-bottom: 20px; line-height: 1.4; } /* Button styling */ .cta-button { display: inline-block; background-color: #fff; color: #ff9800; text-decoration: none; font-weight: bold; padding: 10px 20px; border-radius: 4px; transition: background-color 0.3s, color 0.3s; } .cta-button:hover { background-color: #ff9800; color: #fff; } /* Responsive adjustments for smaller screens */ @media (max-width: 600px) { .game-box { max-width: 100%; /* Boxes will stretch to full width on small screens */ } } </style> <div class="games-container"> <!-- Threepeat Box --> <div class="game-box"> <h2>Threepeat</h2> <p> Find common ground </p> <a href="/threepeat" class="cta-button">Play Now</a> </div> <!-- Compound Your Joy Box --> <div class="game-box"> <h2>Compound Your Joy</h2> <p> Find connection </p> <a href="/cyj" class="cta-button">Play Now</a> </div> <!-- Pandergram Box --> <div class="game-box"> <h2>Pandergram</h2> <p> Foster inclusion </p> <a href="/pandergram" class="cta-button">Play Now</a> </div> </div> </center> <br><br> <div class="games_info"> <center><strong>Newsletter back-issues</strong></center> <ul> <li><a href="https://mailchi.mp/b9ea7c3b10f5/welcome-fivearrive-prototype">Issue 1</a>: Welcome! + Five Arrive <li><a href="https://mailchi.mp/c18dd0122378/welcome-fivearrive-prototype-10333004">Issue 2</a>: Pandergram <li><a href="https://mailchi.mp/6f50c6f19568/welcome-fivearrive-prototype-10333363">Issue 3</a>: Threepeat </ul> </div> <center> <div id="mc_embed_signup"> <form action="https://civicsearch.us14.list-manage.com/subscribe/post?u=072876ecccbe8f476c67f0bdc&amp;id=498249bb17&amp;f_id=00625fe5f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"> <div id="mc_embed_signup_scroll"> Subscribe to receive an email (at most weekly) with a selection of our best puzzles from the week&mdash;like <a href="/cyj">Compound Your Joy</a>, <a href="/threepeat">Threepeat</a>, <a href="/pandergram">Pandergram</a>, and others yet to come. We'll have occasional contests, too!<br><br> <div class="mc-field-group"><label for="mce-EMAIL">Email Address: </label><input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""></div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display: none;"></div> <div class="response" id="mce-success-response" style="display: none;"></div> </div><div aria-hidden="true" style="position: absolute; left: -5000px;"><input type="text" name="b_072876ecccbe8f476c67f0bdc_498249bb17" tabindex="-1" value=""></div><div class="clear"><input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"></div> </div> </form> </div> </center><script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script> function highlightWildcard(item, pattern) { if (!pattern.endsWith('*')) { pattern += '*'; } const segments = pattern.split('*'); function parseSegment(segment) { return segment.split(''); } function buildSegmentRegex(tokens) { const groupPatterns = tokens.map(ch => { if (ch === '?') { return '([A-Za-z ])'; // capturing group for 1 letter/space } else { // Escape any regex special chars in case the pattern has them const escaped = ch.replace(/[.^$|\\()[\]{}*+?]/g, '\\$&'); return '(' + escaped + ')'; } }); return new RegExp('^' + groupPatterns.join(''), 'i') } function bold(text) { return `<span class="autocomplete_bolded">${text}</span>`; } function buildInvertedSegmentMatch(tokens, matchArray) { let out = ''; for (let i = 0; i < tokens.length; i++) { const token = tokens[i]; const actualChar = matchArray[i + 1]; // what we matched in the item if (token === '?') { out += bold(actualChar); } else { out += actualChar; } } return out; } let resultHTML = ''; let currentIndex = 0; for (const seg of segments) { if (!seg) { continue; } const tokens = parseSegment(seg); const segmentRegex = buildSegmentRegex(tokens); let matchPos = -1; let matchLength = 0; let matchArray = null; for (let startPos = currentIndex; startPos <= item.length; startPos++) { const substring = item.slice(startPos); const m = segmentRegex.exec(substring); if (m) { matchPos = startPos; matchLength = m[0].length; matchArray = m; break; } } if (matchPos === -1) { let iPos = currentIndex; // pointer into item let pPos = 0; // pointer into tokens[] while (iPos < item.length && pPos < tokens.length) { const token = tokens[pPos]; const itemChar = item[iPos]; if (token === '?') { iPos++; pPos++; } else { if (itemChar.toLowerCase() === token.toLowerCase()) { iPos++; pPos++; } else { break; } } } const matchedPrefix = item.slice(currentIndex, iPos); resultHTML += matchedPrefix; const leftover = item.slice(iPos); if (leftover) { resultHTML += `<span style="color:red;">${leftover}</span>`; } return resultHTML; } const gapText = item.slice(currentIndex, matchPos); if (gapText) { resultHTML += bold(gapText); } const matchedSegmentHTML = buildInvertedSegmentMatch(tokens, matchArray); resultHTML += matchedSegmentHTML; currentIndex = matchPos + matchLength; } const leftover = item.slice(currentIndex); if (leftover) { resultHTML += bold(leftover); } return resultHTML; } function ol(isForward, mode) { var x = $( "#olinput" ).val(); var url = "/"; if (isForward) { url = "/?w=" + encodeURIComponent(x); } else { url = "/thesaurus/"; if (x !== "") { url += "?s=" + encodeURIComponent(x); } } if (mode) { url += "&" + mode + "=1"; } if (url !== "/") { window.location.replace(url); } } $(function() { last_req = ""; const body = document.body; if (typeof(Storage) !== "undefined") { const savedTheme = localStorage.getItem('theme'); if (savedTheme) { body.className = savedTheme; } else { body.className = 'light-theme'; } } $(".darkModeToggle").click(() => { body.classList.toggle('dark-theme'); body.classList.toggle('light-theme'); if (typeof(Storage) !== "undefined") { $("#olinput").append('<img src="/img/0.gif?q=hometheme_' + body.className + '">'); localStorage.setItem('theme', body.className); } }); $( "#olinput" ).autocomplete( { minLength: 3, delay: 100, open: function(event, ui) { $('.ui-autocomplete').off('menufocus hover mouseenter mouseover'); }, select: function(event, ui) { if (ui.item.value.match("Symbols:")) { ui.item.value = $( "#thesinput").val(); return; } $('<input>').attr({ type: 'hidden', name: 'loc', value: 'home_ac_' + last_req }).appendTo('#olform'); $( "#olinput" ).val(ui.item.value); $( "#olform" ).submit(); }, source: function( request, response ) { var res = request.term.split(":"); var pattern = res[0]; var url; if (res.length > 1) { url = '//www.onelook.com/api/words?v=ol_gte2&md=d&max=10&k=ol_clue&sp=' + encodeURIComponent(res[0]) + '&ml=' + encodeURIComponent(res[1]); } else { url = '//www.onelook.com/api/sug?v=ol_gte2&k=ol_home&s=' + encodeURIComponent(request.term.replace(/[:].*/,'')); } $.ajax({ dataType: "json", type: 'GET', url: url, success: function(data) { data.push({"word": "Symbols: ? (match a letter), * (match many), // (unscramble)"}); response($.map(data, function(item) { item.word = item.word.replace(/[+]/g, ' '); var label = item.word; var definition = ""; if (item.defs && item.defs.length > 0) { var parts = item.defs[0].split("\t"); if (parts.length > 1) { definition = parts[1].trim().replace(/[_.]/g, ''); definition = definition.replace(/^:/, "→ "); // right arrow for descriptives definition = definition.length > 60 ? definition.slice(0, 60) + "..." : definition; } } return { label: label, // label is shown in the dropdown menu value: item.word, // value goes into the input box on selection highlight: (item.word === pattern ? ("<strong>" + pattern + "</strong>") : (item.word.match("Symbols:") ? item.word : highlightWildcard(item.word, pattern))), defs: definition, is_match: (item.word.toLowerCase() === pattern.toLowerCase()) }; })); } }); }}) .data("ui-autocomplete")._renderItem = function(ul, item) { var $li = $("<li>").appendTo(ul); var $word = $("<span>").html(item.highlight); // Definition on the right (in gray), but only if we have one if (item.defs) { var $def = $("<span class='definition'>").text(item.defs); if (item.is_match) { $def = $("<span class='definition definition_match'>").text(item.defs); } $li.append($word).append($def); } else { $li.append($word); } return $li; }; ; init(); }); </script> <br><br><br><br> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10