--bg: #fef6e8; --bg-soft: #fdebd6; --bg-card: #ffffff; --ink: #2d2418; --ink-soft: #5a4e3c; --ink-faint: #9a8e7a; --peach: #ffb89d; --peach-soft: #ffd4c0; --mint: #b8e6c8; --mint-soft: #d4f0dd; --sky: #b8d8f0; --sky-soft: #d4e8f5; --rose: #ffc4d6; --rose-soft: #ffd9e4; --butter: #ffe5a0; --butter-soft: #fff0c4; --lilac: #d8c4f0; --lilac-soft: #e8dcf5; --primary: #ff7a59; --primary-soft: #ffa489; --primary-dark: #e85a37; --shadow: 0 4px 0 rgba(45,36,24,0.12); --shadow-lg: 0 8px 0 rgba(45,36,24,0.1); --shadow-button: 0 3px 0 rgba(45,36,24,0.25); --radius-sm: 12px; --radius: 20px; --radius-lg: 32px; --radius-xl: 48px; } * { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; } html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } body { background: var(--bg); color: var(--ink); font-family: 'Nunito', -apple-system, sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; background-image: radial-gradient(circle at 10% 5%, var(--peach-soft) 0%, transparent 25%), radial-gradient(circle at 90% 30%, var(--mint-soft) 0%, transparent 25%), radial-gradient(circle at 30% 70%, var(--lilac-soft) 0%, transparent 25%), radial-gradient(circle at 80% 90%, var(--sky-soft) 0%, transparent 30%); background-attachment: fixed; } .container { max-width: 1100px; margin: 0 auto; padding: 0 20px; } /* Decorative blobs */ .blob { position: absolute; border-radius: 50%; filter: blur(40px); opacity: 0.4; pointer-events: none; z-index: 0; } /* HEADER */ header { padding: 16px 0; position: sticky; top: 0; z-index: 100; background: rgba(254, 246, 232, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .header-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; } .logo { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 26px; letter-spacing: -0.02em; cursor: pointer; display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; } .logo-mark { width: 38px; height: 38px; background: var(--primary); border-radius: 50%; position: relative; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 3px 0 rgba(45,36,24,0.15); } .logo-mark::after { content: ''; position: absolute; width: 14px; height: 14px; background: var(--bg); border-radius: 50%; top: 6px; right: 6px; } nav { display: flex; gap: 12px; align-items: center; } nav a { font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: none; padding: 8px 16px; border-radius: 999px; transition: all 0.15s; cursor: pointer; } nav a:hover { background: var(--bg-soft); color: var(--ink); } /* DROPDOWN */ .nav-dropdown { position: relative; } .nav-dropdown > a { display: flex; align-items: center; gap: 4px; } .nav-dropdown > a::after { content: '▾'; font-size: 11px; opacity: 0.6; } .dropdown-menu { display: none; position: absolute; top: calc(100% + 6px); right: 0; background: var(--bg-card); border-radius: var(--radius); box-shadow: 0 8px 24px rgba(45,36,24,0.12), 0 2px 0 rgba(45,36,24,0.06); min-width: 180px; padding: 8px; z-index: 200; } .nav-dropdown:hover .dropdown-menu { display: block; } .dropdown-menu a { display: block; padding: 10px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; color: var(--ink-soft); text-decoration: none; margin: 0; transition: background 0.15s; } .dropdown-menu a:hover { background: var(--bg-soft); color: var(--ink); } @media (max-width: 600px) { .logo { font-size: 22px; } .logo-mark { width: 32px; height: 32px; } nav a { padding: 8px 12px; font-size: 13px; } } /* HERO */ .hero { padding: 60px 0 40px; position: relative; } .hero .blob-1 { top: -80px; left: -100px; width: 300px; height: 300px; background: var(--peach); } .hero .blob-2 { top: 40px; right: -80px; width: 280px; height: 280px; background: var(--mint); } .hero-content { position: relative; z-index: 1; } .hero-tag { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; background: var(--bg-card); border-radius: 999px; font-weight: 700; font-size: 13px; color: var(--primary-dark); margin-bottom: 24px; box-shadow: var(--shadow-button); } .hero-tag::before { content: ''; width: 8px; height: 8px; background: var(--primary); border-radius: 50%; } .hero h1 { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: clamp(40px, 8vw, 80px); line-height: 1.0; letter-spacing: -0.03em; margin-bottom: 24px; max-width: 850px; } .hero h1 em { font-style: italic; font-weight: 500; color: var(--primary-dark); background: linear-gradient(120deg, transparent 0%, transparent 25%, var(--butter) 25%, var(--butter) 75%, transparent 75%); background-size: 100% 88%; background-repeat: no-repeat; background-position: 0 90%; padding: 0 6px; } .hero p { font-size: clamp(17px, 2.4vw, 20px); max-width: 580px; color: var(--ink-soft); line-height: 1.55; } .hero-stats { display: flex; gap: 12px; margin-top: 40px; flex-wrap: nowrap; } .stat-pill { background: var(--bg-card); padding: 12px 18px; border-radius: var(--radius); box-shadow: var(--shadow); display: flex; align-items: baseline; gap: 8px; flex: 1; min-width: 0; } .stat-num { font-family: 'Bricolage Grotesque', sans-serif; font-size: clamp(20px, 4vw, 28px); font-weight: 800; color: var(--primary-dark); line-height: 1; } .stat-label { font-size: 13px; color: var(--ink-soft); font-weight: 600; } /* AD SLOTS */ .ad-slot { background: var(--bg-card); border: 2px dashed rgba(45,36,24,0.15); border-radius: var(--radius); padding: 20px; text-align: center; font-size: 12px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; margin: 32px 0; min-height: 90px; display: flex; align-items: center; justify-content: center; } .ad-slot.banner { min-height: 100px; } .ad-slot.inline { min-height: 250px; } .ad-slot.sticky-side { min-height: 300px; } .ad-slot.footer-banner { min-height: 100px; margin: 40px 0 0; } .ad-slot.post-result { display: none; margin: 24px 0 0; min-height: 0; animation: fadeInAd 0.4s ease; border: none; background: none; } .ad-slot.post-result.visible { display: flex; } /* CATEGORY HEADERS */ .tool-category { margin-bottom: 40px; } .category-label { display: inline-flex; align-items: center; gap: 8px; font-family: 'Bricolage Grotesque', sans-serif; font-size: 18px; font-weight: 700; color: var(--ink); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--rule-soft, rgba(45,36,24,0.12)); width: 100%; } .category-label .cat-icon { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; } @keyframes fadeInAd { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } /* TOOLS GRID */ .tools-section { padding: 40px 0 80px; position: relative; } .section-head { margin-bottom: 32px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; } .section-head h2 { font-family: 'Bricolage Grotesque', sans-serif; font-size: clamp(28px, 5vw, 44px); font-weight: 700; letter-spacing: -0.02em; } .section-head .meta { font-size: 13px; color: var(--ink-faint); font-weight: 600; } .tools-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; } .tool-card { background: var(--bg-card); border-radius: var(--radius-lg); padding: 24px; cursor: pointer; transition: transform 0.18s ease, box-shadow 0.18s ease; box-shadow: var(--shadow); position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 220px; } .tool-card:hover { transform: translate(-2px, -3px); box-shadow: 0 8px 0 rgba(45,36,24,0.12); } .tool-card:active { transform: translate(0, 0); box-shadow: var(--shadow); } .tool-icon { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 28px; margin-bottom: 16px; } .tool-icon.peach { background: var(--peach-soft); } .tool-icon.mint { background: var(--mint-soft); } .tool-icon.sky { background: var(--sky-soft); } .tool-icon.rose { background: var(--rose-soft); } .tool-icon.butter { background: var(--butter-soft); } .tool-icon.lilac { background: var(--lilac-soft); } .tool-card h3 { font-family: 'Bricolage Grotesque', sans-serif; font-size: 19px; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 8px; line-height: 1.2; } .tool-card p { font-size: 14px; color: var(--ink-soft); line-height: 1.5; flex-grow: 1; } .tool-arrow { position: absolute; bottom: 20px; right: 20px; width: 32px; height: 32px; border-radius: 50%; background: var(--ink); color: var(--bg); display: flex; align-items: center; justify-content: center; font-size: 16px; transition: transform 0.18s; } .tool-card:hover .tool-arrow { transform: translateX(2px); background: var(--primary); } /* TOOL VIEW */ .tool-view { display: none; padding: 24px 0 80px; position: relative; } .tool-view.active { display: block; } .breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-faint); margin-bottom: 24px; font-weight: 600; } .breadcrumb a { color: var(--ink-soft); text-decoration: none; cursor: pointer; padding: 6px 12px; border-radius: 999px; background: var(--bg-card); transition: all 0.15s; box-shadow: var(--shadow-button); } .breadcrumb a:hover { color: var(--ink); } .tool-view h1 { font-family: 'Bricolage Grotesque', sans-serif; font-size: clamp(32px, 6vw, 52px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 16px; } .tool-view .lede { font-size: clamp(16px, 2.2vw, 18px); color: var(--ink-soft); max-width: 640px; margin-bottom: 24px; line-height: 1.55; } /* FAVOURITE PROMPT */ .fav-prompt { display: flex; align-items: center; gap: 12px; background: var(--butter-soft); border-radius: var(--radius); padding: 12px 18px; margin-bottom: 32px; font-size: 14px; color: var(--ink-soft); font-weight: 600; } .fav-prompt-icon { width: 36px; height: 36px; flex-shrink: 0; background: var(--butter); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 18px; } .fav-prompt span { flex-grow: 1; } .fav-prompt code { background: var(--bg-card); padding: 3px 8px; border-radius: 6px; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 12px; color: var(--ink); margin: 0 3px; white-space: nowrap; } /* TOOL LAYOUT */ .tool-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; margin-bottom: 32px; } @media (max-width: 880px) { .tool-layout { grid-template-columns: 1fr; gap: 16px; } } .panel { background: var(--bg-card); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow); } @media (max-width: 600px) { .panel { padding: 22px; border-radius: 24px; } } .panel-title { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint); margin-bottom: 20px; font-weight: 700; display: flex; align-items: center; gap: 8px; } .panel-title::before { content: ''; width: 6px; height: 6px; background: var(--primary); border-radius: 50%; } /* FORM */ .field { margin-bottom: 18px; } .field label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 6px; color: var(--ink); } .field-hint { font-size: 12px; color: var(--ink-faint); margin-top: 6px; line-height: 1.5; } input[type="text"], input[type="number"], input[type="email"], input[type="time"], input[type="date"], select, textarea { width: 100%; padding: 13px 16px; border: 2px solid transparent; background: var(--bg-soft); font-family: 'Nunito', sans-serif; font-size: 16px; font-weight: 600; color: var(--ink); border-radius: var(--radius-sm); transition: all 0.15s; -webkit-appearance: none; appearance: none; } select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='%235a4e3c' d='M1 1l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 44px; } textarea { resize: vertical; min-height: 100px; font-family: 'Nunito', sans-serif; } input:focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); background: var(--bg-card); } .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; } @media (max-width: 480px) { .row-3 { grid-template-columns: 1fr 1fr; } } /* BUTTONS */ button.primary, button.secondary, button.tab { font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 15px; padding: 13px 24px; border-radius: 999px; cursor: pointer; transition: all 0.15s; border: none; letter-spacing: 0.01em; } button.primary { background: var(--ink); color: var(--bg); box-shadow: var(--shadow-button); } button.primary:hover { background: var(--primary); transform: translateY(-1px); } button.primary:active { transform: translateY(0); box-shadow: 0 1px 0 rgba(45,36,24,0.25); } button.secondary { background: var(--bg-soft); color: var(--ink); box-shadow: var(--shadow-button); } button.secondary:hover { background: var(--peach-soft); } /* COUNTRY TABS */ .country-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px; padding: 6px; background: var(--bg-soft); border-radius: 999px; overflow-x: auto; } .country-tab { padding: 8px 16px; border: none; background: transparent; border-radius: 999px; font-family: 'Nunito', sans-serif; font-size: 13px; font-weight: 700; color: var(--ink-soft); cursor: pointer; transition: all 0.15s; white-space: nowrap; flex-shrink: 0; } .country-tab.active { background: var(--ink); color: var(--bg); box-shadow: var(--shadow-button); } .country-tab:hover:not(.active) { background: rgba(45,36,24,0.06); } /* RESULT */ .result-display { text-align: center; padding: 16px 0 24px; } .result-headline { font-family: 'Bricolage Grotesque', sans-serif; font-size: clamp(48px, 9vw, 72px); font-weight: 800; line-height: 1; color: var(--primary-dark); letter-spacing: -0.03em; margin-bottom: 6px; word-break: break-all; } .result-sub { font-size: 13px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; } .result-breakdown { margin-top: 24px; padding: 20px; background: var(--bg-soft); border-radius: var(--radius); } .breakdown-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; font-size: 14px; border-bottom: 1px dashed rgba(45,36,24,0.1); gap: 12px; } .breakdown-row:last-child { border: none; font-weight: 800; padding-top: 14px; margin-top: 4px; border-top: 2px solid var(--ink); } .breakdown-label { color: var(--ink-soft); font-weight: 600; } .breakdown-value { font-weight: 700; text-align: right; } /* SUBSCRIPTIONS */ .sub-list { display: flex; flex-direction: column; gap: 8px; } .sub-item { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr auto; gap: 8px; align-items: center; } .sub-item input, .sub-item select { padding: 10px 12px; font-size: 14px; } .sub-item button.remove { background: var(--bg-soft); border: none; width: 38px; height: 38px; cursor: pointer; color: var(--ink-soft); font-size: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .sub-item button.remove:hover { background: var(--rose); color: white; } @media (max-width: 480px) { .sub-item { grid-template-columns: 1fr 1fr auto; grid-template-rows: auto auto; gap: 6px; } .sub-item input[type="text"] { grid-column: 1 / -1; } } /* DOCUMENT OUTPUT */ .document { background: linear-gradient(180deg, #fffdf6 0%, #fff 100%); padding: 32px; font-family: 'Nunito', sans-serif; line-height: 1.7; color: #2d2418; border-radius: var(--radius); max-height: 480px; overflow-y: auto; white-space: pre-wrap; font-size: 14px; box-shadow: inset 0 0 0 2px rgba(45,36,24,0.06); } .document.empty { color: var(--ink-faint); text-align: center; padding: 60px 32px; font-style: italic; } /* INFO BOXES */ .info-box { background: var(--mint-soft); border-radius: var(--radius); padding: 18px 22px; font-size: 14px; margin: 24px 0; line-height: 1.6; color: var(--ink); display: flex; gap: 14px; } .info-box-icon { width: 32px; height: 32px; background: var(--mint); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; } .info-box.warning { background: var(--butter-soft); } .info-box.warning .info-box-icon { background: var(--butter); } .info-box strong { font-weight: 700; } /* PILL */ .pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; background: var(--peach-soft); border-radius: 999px; font-size: 12px; font-weight: 700; color: var(--ink); margin-bottom: 16px; text-transform: uppercase; letter-spacing: 0.05em; } /* SLEEP RESULTS */ .sleep-section { margin-top: 12px; } .sleep-section h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint); margin: 16px 0 8px; font-weight: 700; } .sleep-time { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--bg-soft); border-radius: var(--radius-sm); margin-bottom: 6px; gap: 12px; } .sleep-time strong { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 17px; } .sleep-time .sleep-meta { font-size: 12px; color: var(--ink-faint); font-weight: 600; } .sleep-time.best { background: var(--mint-soft); } .sleep-time.short { background: var(--rose-soft); } /* DOC TOOLBAR */ .doc-toolbar { display: flex; gap: 8px; margin-top: 16px; } .doc-toolbar button { flex: 1; padding: 11px 16px; font-size: 14px; } /* GENERATE BUTTON STYLES */ .gen-button { display: block; width: 100%; padding: 16px; background: var(--primary); color: white; border: none; border-radius: var(--radius); font-family: 'Nunito', sans-serif; font-size: 16px; font-weight: 800; cursor: pointer; margin-top: 8px; box-shadow: var(--shadow-button); transition: all 0.15s; } .gen-button:hover { background: var(--primary-dark); transform: translateY(-1px); } .gen-button:active { transform: translateY(0); } /* FOOTER */ footer { background: var(--bg-soft); border-radius: var(--radius-xl) var(--radius-xl) 0 0; padding: 48px 0 24px; margin-top: 60px; position: relative; } .footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; margin-bottom: 32px; } @media (max-width: 700px) { .footer-inner { grid-template-columns: 1fr; gap: 24px; } } .footer-brand p { font-size: 14px; color: var(--ink-soft); max-width: 360px; margin-top: 12px; line-height: 1.55; } .footer-col h4 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint); margin-bottom: 14px; font-weight: 700; } .footer-col a { display: block; color: var(--ink-soft); text-decoration: none; font-size: 14px; margin-bottom: 8px; cursor: pointer; font-weight: 600; transition: color 0.15s; } .footer-col a:hover { color: var(--primary-dark); } .footer-bottom { border-top: 1px solid rgba(45,36,24,0.1); padding-top: 20px; font-size: 12px; color: var(--ink-faint); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-weight: 600; } /* HELPER */ .scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; } @media (max-width: 600px) { .container { padding: 0 16px; } .panel { padding: 20px; } .field { margin-bottom: 14px; } input[type="text"], input[type="number"], input[type="email"], input[type="time"], input[type="date"], select, textarea { padding: 12px 14px; font-size: 16px; /* prevent zoom on iOS */ } .tools-grid { gap: 12px; } .tool-card { padding: 20px; min-height: 200px; } .breadcrumb { font-size: 13px; flex-wrap: wrap; } .breakdown-row { font-size: 13px; } .ad-slot { margin: 24px 0; } }
32 free, browser-based tools — calculators, timers, generators, converters, document builders. Works for AU, US, UK, CA, EU. Zero accounts. Zero nonsense.
Convert salary to hourly, daily, weekly or monthly. See your raise in real dollars. AU, US, UK, CA.
Reverse-engineer a sustainable rate from your income goal, tax rules, and real billable days.
Add up what you're really spending on streaming and apps. Probably more than you think.
What do you actually pay after a discount? Calculate sale prices, markups, and compare two prices.
Find the real cost of importing goods including duty, VAT/GST, and processing fees. AU, US, UK, CA, EU.
Twitch, Patreon, Substack — see what actually lands in your account after fees and tax.
Calculate the tip, split the bill between any number of people, and handle unequal splits. Works in any currency.
Monthly repayments, total interest, and a full amortisation breakdown. Works for AU, US, UK, CA, EU.
UPPERCASE, lowercase, Title Case, Sentence case, camelCase, snake_case and more. Paste and convert instantly.
Convert between HEX, RGB, HSL, and CMYK instantly. Live colour preview. Essential for designers and developers.
Calculate your GPA on the US 4.0 scale, Australian grade scale, or percentage. Add subjects and weights.
Estimate realistic daily spending for any trip by destination tier, travel style, and pace.
How much will petrol or gas cost for your trip? Works in L/100km, MPG, for AU, US, UK and more.
cm to inches, kg to lbs, °C to °F, km to miles — all the conversions people actually search for.
Days between two dates, countdown to an event, add or subtract days, working days calculator.
Focus timer with customisable work and break intervals, task list, and ambient sound. The classic method, cleanly built.
Clean full-screen timer with alarm sounds, lap splits, and a stopwatch mode. Works great for classrooms and meetings.
Wake between cycles, not in the middle of one. Includes shift-worker mode for nurses and night owls.
Paste text or enter a word count. See how long it takes to read or speak aloud, with presets for TED talks and more.
Random picker for names, decisions, teams, or anything. Add your own options and spin. Satisfying every time.
A smart template engine that writes a real, role-specific cover letter. Download as a professional PDF.
Stand out from 50 other applicants with a personal letter that highlights why you're a great tenant.
Plain-English mutual NDA for early-stage business chats. Law selectable for AU, US, UK, CA.
Generate strong, unique passwords. Runs entirely in your browser — nothing is sent anywhere. Includes strength meter.
Vet-formula based daily calories for your dog by weight, age, and activity. Plus food portion guidance.
Calculate your Body Mass Index and healthy weight range. Metric and imperial. Includes BMI chart and what your result means.
Live exchange rates. Convert any amount and see it against 10 currencies simultaneously. Powered by ECB data, updated daily.
What time is it in any city right now? Compare multiple time zones side by side — great for scheduling international calls.
How fast do you type? Test your WPM and accuracy. Multiple difficulty levels. Come back to beat your score.
Flip a coin with a satisfying 3D animation. Tracks heads vs tails over multiple flips. Cryptographically random.
Roll any dice — D4, D6, D8, D10, D12, D20, D100. Animated roll with full history. Roll multiple dice at once.
Generate truly random numbers in any range. Or ask the yes/no oracle. Cryptographically random, not pseudo-random.
Most free tool sites are cluttered, slow, and try to upsell you. FreeToolyard.com is different — a growing set of genuinely useful calculators and generators that run entirely in your browser, save no data, and never ask you to sign up.
Each tool here solves a specific question we kept Googling and getting bad answers to. The kind of stuff a friend who's good at spreadsheets would help you with in 5 minutes.
If a tool here saves you ten minutes, that's the win. If it saves you from making a bad financial decision, even better.
The real landed cost of buying something from overseas — including customs duty, VAT/GST, and processing charges. Pick your country to start.
Ctrl+D to add this page to your favourites.
Most freelancers undercharge because they only count days they want to work. Real freelancing has sick days, slow weeks, admin and marketing. This calculates a sustainable rate based on reality — with proper tax handling for your country.
Ctrl+D (or ⌘+D on Mac) to bookmark this page.
Most people underestimate by 2–3x. Add yours below and see the annual damage. Includes the 5-year compounded cost — what those subs really cost over time if you'd invested instead.
Ctrl+D to add to favourites.
Generic "trip budget" advice is useless because Tokyo and Hanoi aren't the same trip. Pick your destination tier, travel style, and trip length for a realistic daily and total estimate.
Ctrl+D to bookmark.
Platform cut, payment processing, and tax. The gap between gross revenue and what hits your bank is bigger than most creators realise. Calculations adjusted for your country's tax rules.
Ctrl+D to bookmark.
A sleep cycle is roughly 90 minutes. Wake at the end of one and you feel rested; wake mid-cycle and you feel awful. This works backwards from your wake time to give you the best bedtimes — including a shift-worker mode for nurses, pilots, and night owls.
Ctrl+D (or ⌘+D on Mac) to bookmark.
Vet-formula based (Resting Energy Requirement × activity factor). The result tells you your dog's daily calories — match that against your dog food's label kcal/cup or kcal/can.
Ctrl+D to bookmark.
Smart template engine, not LLM-generated. Fill in the gaps, choose a tone, and the generator weaves your inputs into a real cover letter with proper paragraph flow, varied sentence structure, and tone-appropriate phrasing. Edit and send.
Ctrl+D to come back for each application.
In tight rental markets, a personal letter attached to your application can tip the decision. The generator weaves your details into a warm, specific, well-structured letter — not a fill-in-the-blanks template.
Ctrl+D to bookmark.
A two-party mutual non-disclosure agreement. Suitable for early-stage business discussions. Generated with jurisdiction-appropriate language for AU, US, UK, CA. Not a substitute for legal advice — if the deal matters, get a lawyer.
Ctrl+D to bookmark.
Convert any pay rate — annual salary, hourly wage, day rate — into every other format. See exactly what a raise means in your weekly take-home. Proper tax-adjusted take-home for AU, US, UK, CA, NZ, and more.
Ctrl+D to bookmark for reference.
Enter your distance, your car's fuel efficiency, and today's fuel price. Get the total cost, cost per person, and a per-km or per-mile breakdown. Works in AU, US, UK, EU — litres, gallons, km, or miles.
Ctrl+D to bookmark.
Paste any text or enter a word count. Instantly see reading time and speaking time — with presets for blog posts, TED talks, YouTube scripts, podcast episodes, wedding speeches, and more.
Ctrl+D to bookmark.
Calculate the real price after a percentage discount, work backwards from a sale price to find the original, or figure out a markup. Works with any currency.
Ctrl+D to bookmark for quick use.
The most common unit conversions — length, weight, temperature, volume, speed, area — all in one clean tool. Just type and get the answer instantly.
Ctrl+D to bookmark.
Generate strong, random passwords. Everything runs in your browser — nothing is sent to any server, ever. Includes strength meter and one-click copy.
Ctrl+D to bookmark.crypto.getRandomValues() — the same source used by security software. No passwords are logged, stored, or transmitted. Ever.How many days between two dates? When is 90 days from today? How many working days until your deadline? All answered instantly.
Ctrl+D to bookmark.Work in focused bursts, take proper breaks, get more done. The Pomodoro Technique in a clean, distraction-free timer. Customise your intervals, add tasks, and stay in flow.
Ctrl+D to bookmark it.Clean, full-screen capable timer with alarm. Switch between countdown, stopwatch, and clock mode. Works great for classrooms, meetings, cooking, workouts — anything.
Ctrl+D to bookmark.Add names, options, or choices and spin for a random result. Great for picking teams, deciding where to eat, classroom activities, giveaways — anything that needs a fair random pick.
Ctrl+D to bookmark.Calculate the tip on any bill, split it between any number of people, and handle rounding. Works in any currency — just change the symbol.
Ctrl+D to bookmark.Monthly repayments, total interest paid, and a full amortisation schedule. Works for mortgages, car loans, personal loans, and student loans. Multi-currency.
Ctrl+D to bookmark.Paste any text and convert it to any case instantly. UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, and more.
Ctrl+D to bookmark.Convert between HEX, RGB, HSL, and CMYK instantly. Live colour preview updates as you type. Essential for designers, developers, and anyone who works with colour.
Ctrl+D to bookmark.Calculate your GPA on the US 4.0 scale, Australian grading scale, or as a percentage average. Add subjects, credit hours or weights, and get your overall GPA instantly.
Ctrl+D to bookmark.Calculate your Body Mass Index, see your healthy weight range, and understand what your result means. Supports metric (kg/cm) and imperial (lbs/inches).
Ctrl+D to bookmark.Live exchange rates powered by the European Central Bank, updated daily. Convert any amount and see it against multiple currencies at once.
Ctrl+D to bookmark.What time is it right now in any city? Compare multiple time zones side by side and find the best time for international calls and meetings.
Ctrl+D to bookmark.How fast do you type? Test your WPM (words per minute) and accuracy. Three difficulty levels. Come back daily to track your improvement.
Ctrl+D to bookmark.Flip a fair, cryptographically random coin. Watch the 3D spin animation, then see your result. Tracks heads vs tails across multiple flips.
Ctrl+D to bookmark.crypto.getRandomValues() — the same cryptographic randomness used in security software. Not a pseudo-random algorithm.Roll any dice — D4, D6, D8, D10, D12, D20, or D100. Animated roll every time. Roll multiple dice and see individual results plus total.
Ctrl+D to bookmark.Generate truly random numbers in any range, pick multiple unique numbers at once, or ask the yes/no oracle. Powered by cryptographic randomness.
Ctrl+D to bookmark for quick use.