FAQ

Common questions about Toolora, privacy, Light / Dark themes, and our most-used browser tools. Read the Privacy Policy for how data is handled. Prefer a walkthrough? Visit the guides, or browse the full tools catalog.

General

Toolora is a free collection of browser-based utilities for developers, students, and everyday work — including JSON and SQL formatters, XML/YAML converters, QR codes, JWT encode/decode, bcrypt, HMAC, and password tools.

No. Toolora v1 tools work without signup. Open a tool, paste your input, and run it in your browser.

Current Toolora utilities are designed to run locally in your browser. Your input stays on your device for these client-side tools. The Privacy Policy explains optional sign-in, cookies, and ads on the live site.

No. Toolora is a website you open in the browser you already use. There is no desktop app, add-on, or download. Bookmark a tool if you return to it often. Close the tab to drop a paste. Search from home or the catalog when you need JSON, JWT, YAML, or another utility.

Yes. The published tools on Toolora are free to use.

Toolora works in modern browsers such as Chrome, Edge, Firefox, and Safari. For the best experience, keep your browser updated.

Yes. Toolora has Light and Dark themes. Light (bright surfaces with green accents) is the default. Use the palette icon in the top navigation to switch anytime.

Click the palette icon in the header, then choose Dark or Light. Your choice is saved in the browser so it stays selected on your next visit.

If you clear site data or use a different browser/device, Toolora returns to the default Light theme until you select one again.

Open the Tools catalog at /tools, or search from the home page or header. On the catalog, press Ctrl+K (Cmd+K on Mac) to focus search. Search looks across every tool name, description, and category — even if you are viewing a single category page.

Yes. The home page and the Tools sidebar list categories such as JSON, Developer, Encoding, Text, Password, Image, Calculators, Date & Time, and CSS. Each category has its own page, for example /tools/json. All (on the sidebar) opens the full catalog at /tools.

Yes. Tap the star on a tool card or tool page — no account needed for up to 15 tools on this device. Favorites pin to the top of the Tools catalog. Sign in to save more and sync them to your dashboard across browsers.

Yes. Every tool has a Fullscreen button. It opens both the input and result panes. Inside fullscreen, switch to input only or result only. Press Escape or the exit icon to return.

Yes. Every tool has a Focus button next to Fullscreen. It blurs the header and other content so only the work area stays clear. Click Focus again or press Escape to exit.

Yes. After you run a tool, use Export on the result pane to download the output locally — JSON as .json, XML as .xml, SQL as .sql, TypeScript as .ts, and other text as .txt. Markdown Preview can also export Markdown, HTML, or PDF.

Open /guides for written walks covering every catalog tool. Family pages (for example case conversion, image compress/resize/crop, or JSON validate/minify/compare) list each sibling /tools/{slug}. Vietnamese is at /vi/guides with the same slugs. Each guide links to the live tool workspace.

Image ↔ Base64

Open tool

Use the Image to Base64 card and pick a file (or drop one). The data URI appears as soon as the file is read — encoding has no Run button. Work stays in this browser. Close the tab to drop the string from memory.

Yes. Paste a data URI or a bare Base64 blob in Base64 to Image. The preview updates as you type. Invalid strings are rejected instead of rendering a broken picture. A bare blob is treated as PNG for preview. Download the result as JPG, PNG, or WebP without leaving this tab.

Usually no. Data URIs are for small icons and CSS backgrounds. Large photographs make huge HTML. Use Image Compressor or keep a real file. Related: Base64 Encode is for text, not pixels.

Word Count

Open tool

It reports words, characters, sentences, paragraphs, and lines, plus estimated reading and speaking time. Totals update as you type. The character total includes spaces; a second card shows the count without spaces. Nothing is uploaded.

Reading time uses about 200 words per minute. Speaking time uses about 130. These are typical adult averages, not a guarantee for your audience.

We split on Unicode word boundaries the browser exposes. Scripts without spaces may under-count words. Character Count is the sibling when you only need a hard character cap.

Character Count

Open tool

Yes. The hero number includes every character, including spaces. A separate card shows the count without spaces. Totals update as you type — there is no Run button.

This page is the cap checker (bios, SMS, tweets). Word Count adds words, sentences, and reading time. Empty input is zero. The draft is not persisted.

We report JavaScript string length in this browser, which may be more than one code point per emoji. It is not a grapheme-cluster marketing count.

Password Strength Checker

Open tool

It looks at length and whether you mixed uppercase, lowercase, numbers, and symbols. The label updates as you type. Nothing is uploaded and the field is not persisted.

It is a local estimate, not a breach check. Repeating a common phrase can still look mixed. Use unique passwords and a password manager. Generate a new one if this checker stays weak.

Not on a shared computer. Close the tab to drop the string. Password Generator creates a random secret instead of scoring one you invented.

URL Parser

Open tool

Protocol, host, port, path, query string, and hash, using the URL constructor in this browser. Query parameters appear as a list. The split updates as you type — there is no Run button.

No. This is not a crawler or redirect follower. Relative URLs without a base are rejected. Input is not persisted so a signed query string does not stick around.

The string may be missing a scheme or be malformed. Use URL Encode / Decode when you need percent-encoding rather than a split.

Timestamp Converter

Open tool

Paste seconds or milliseconds, or an ISO date string. Toolora shows Unix seconds, milliseconds, ISO UTC, and the local date. Values under 1e12 are treated as seconds. The result updates as you type.

No. Time Zone Converter is the sibling for wall clocks in another city. This page answers “what instant is this integer?” Leap seconds are not applied as a separate table.

No. Conversion stays in this tab. Input is not persisted. Invalid strings show an error instead of a guessed date.

Cron Explainer

Open tool

Paste a 5-field expression (minute hour day month weekday). The explanation updates as you type. Lists, ranges, steps, and names like MON-FRI work. Use Cron Builder if you need to assemble the fields instead.

No. Seconds fields are Quartz/Spring, not classic crontab. ? is treated like * for day fields. This page does not fire jobs and does not know your server timezone.

No. Decoding stays in this browser. Input is not persisted. Day-of-month and day-of-week together still follow Vixie cron’s usual “or” behavior — read the explanation.

Lorem Ipsum Generator

Open tool

No. Choose an amount (paragraphs, sentences, or words). The placeholder copy appears instantly — nothing is uploaded. Order is stable so screenshots do not flicker.

The generator uses a classic word list in a stable order so results are predictable for layouts and visual tests. It is not unique production copy — do not ship it to users.

Use Fake JSON for objects and arrays. Random Name Picker for names. Character Count and Word Count will tally whatever you paste back in.

Fake JSON Generator

Open tool

No. Sample documents are built in this browser from the shape you pick. Nothing is uploaded. Pretty-print in JSON Formatter; validate in JSON Validator.

No. It is not a schema faker and not a way to anonymize a real dump. Values are plausible placeholders, not statistically real production data.

Copy valid JSON into JSON to TypeScript. JSON Compare can diff two sample shapes. Do not paste real customer dumps into a shared tab.

No. Values are plausible placeholders, not statistically real, and not an anonymizer for a production dump. Treat the output as a sketch. Close the tab to drop the sample. Pretty-print in JSON Formatter. Nothing is uploaded.

Random Number Generator

Open tool

Web Crypto in this browser draws integers in the range you set. Nothing is uploaded. Inclusive bounds follow the panel. This is for raffles and test data, not lottery seeds or crypto keys.

Duplicates may appear unless a without-replacement control is on. Dice Roller is the sibling when the metaphor is dice. Password Generator is the sibling for secrets.

No. Do not use a numeric draw as a password. Open Password Generator for mixed character sets and Web Crypto secrets.

Dice Roller

Open tool

No. Rolls use Web Crypto in this tab. This is for tabletop games and classroom demos, not a casino or a provably-fair ledger.

A d20 is not a generic range tool. Use Random Number Generator for min/max integers. Full RPG exploding-dice notation is out of scope unless the panel shows it.

No. Close the tab to drop the last roll. Random Name Picker is the sibling when you need a name, not a face.

No. Advantage and exploding dice are out of scope unless the panel lists them. Keep physical dice if your table requires them. Random Number Generator is the sibling for min/max integers. Close the tab to drop the last roll. Nothing is uploaded.

Random Name Picker

Open tool

It draws from the list you type (one name per line) with Web Crypto in this browser. Regenerate draws again. Empty lines are ignored. Nothing is uploaded and the list is not persisted.

Not unless the panel says so. A list of one name always returns that name. Do not paste a confidential roster on a shared machine.

Use Random Number Generator. Dice Roller is for polyhedral dice. UUID Generator is for identifiers, not display names.

UUID Generator

Open tool

Random UUID v4, time-ordered UUID v7, and ULID. Choose a format and how many IDs. v4 is the usual choice for new records; v7 sorts by time in databases. Output can be one per line, JSON, or comma-separated.

No. Values are generated with the Web Crypto API in your browser. Treat them as identifiers, not as secrets or passwords.

No. Use Password Generator for secrets and Bcrypt Hash to store a $2 hash. This page does not mint v1 MAC-based GUIDs.

Password Generator

Open tool

It creates a random password in your browser with Web Crypto using the length and character sets you select (lowercase, uppercase, numbers, symbols). 20 is the default; 16+ is a strong baseline. Nothing is stored by Toolora.

It omits look-alike characters (i, l, 1, L, O, 0) so the password is easier to read. Turn it off if you want the full character set. Require-each-set forces one character from every selected class.

Not on a shared computer. This is not a password manager. Password Strength scores a string you already have; Bcrypt Hash stores a $2 hash. Close the tab to drop the secret.

Bcrypt Hash

Open tool

Enter the password, choose Hash, and create the hash. Hashing is intentionally slow (10 rounds) and is a click, not a live keystroke hash. Nothing is uploaded.

Choose Verify, paste the password and the $2 hash, then check the match. Toolora reports whether they match. It does not decrypt a hash.

No. Hash Generator is for checksums. HMAC is keyed authenticity, not password storage. Do not paste production passwords on a shared machine. Close the tab to drop them.

QR Code Generator

Open tool

Yes. There is no Generate button. URL, text, Wi-Fi, email, phone, SMS, vCard, and WhatsApp payloads draw locally. Include https:// on URLs so scanners open the page.

No. Generation stays in this tab. A center logo forces high error correction. Very long vCards can fail on cheap readers — shorten the fields.

Use Barcode Generator for 1D retail marks (EAN, UPC, Code 128). QR is for 2D URLs and contact payloads. This is not a short-link or scan-analytics service.

Barcode Generator

Open tool

Open Barcode Generator, choose a format such as Code 128 or EAN-13, and type the value. The image updates as you type — there is no Generate button. Download PNG, SVG, or PDF when you are ready.

No. Generation stays in your browser. Retail formats like EAN-13 and UPC-A need the right number of digits; Code 128 is more flexible for SKUs and tracking codes.

No. Invalid lengths show an error instead of a silent bad mark. Quiet zone and bar height affect scans. QR Code Generator is the sibling for 2D codes.

JSON Validator

Open tool

Paste JSON into JSON Validator. The result updates as you type — there is no Run button. Valid JSON is pretty-printed on the right; invalid JSON shows the error and line. Nothing is uploaded.

No. Checking the structure does not change the left editor. Use Format to pretty-print valid JSON into the editor, or open JSON Formatter / JSON Minifier to transform it.

No. Trailing commas and single quotes fail because JSON is not JavaScript. Use JSON to TypeScript for types from a valid example, and JSON Compare to diff two documents.

JSON Compare

Open tool

Paste or open JSON A and JSON B. Side by side, unified, and tree views update as you type when both sides parse — there is no Run button. Swap sides anytime. Nothing is uploaded.

No. This is a structural JSON diff with added/removed/modified counts. Text Diff is a line diff of prose. Invalid JSON on either side shows an error instead of a guessed tree.

Arrays are compared by index unless the UI says otherwise. It is not a three-way merge or a schema diff. Validate syntax first in JSON Validator if a side will not parse.

JSON Formatter

Open tool

It pretty-prints JSON as you type, with 2-space, 4-space, or tab indent. You can sort keys alphabetically or minify on the same page.

A syntax error appears under the output with the line and column when the parser reports them. Fix the input and the formatted JSON updates again. Formatting still runs locally in your browser.

Yes. Turn on Minify JSON in the formatter toolbar. You can also open the dedicated JSON Minifier tool if you only need compression.

Yes. Use Copy Code on the prettified output pane. Formatting runs locally in your browser — nothing is uploaded.

JSON Validator

Open tool

Paste JSON into JSON Validator. The result updates as you type — there is no Run button. Valid JSON is pretty-printed on the right; invalid JSON shows the error and line.

No. Checking the structure does not change the left editor. Use Format to pretty-print valid JSON into the editor, or open JSON Formatter / JSON Minifier to transform it.

JSON Compare

Open tool

Paste JSON A on the left and JSON B on the right. The comparison updates as you type — there is no Run button. Use Open to load a file, Format to pretty-print, or Swap to flip the two sides.

Added keys exist only in JSON B. Removed keys exist only in JSON A. Modified values exist in both but differ. Unchanged keys match on both sides. Switch Side by side, Unified, or Tree view for the same result.

No. Comparison runs locally in your browser. Nothing is uploaded or stored on a server.

Percentage Calculator

Open tool

Choose Percentage of a number, then enter the percent and the number — for example 25% of 80. The result updates as you type. Tap a quick example if you want a filled-in check.

Reverse percentage finds the original 100% amount when you know a part and the percent it represents. If 20 is 25%, the original value is 80.

No. Every mode runs locally in your browser. Nothing is uploaded or stored on a server.

Discount Calculator

Open tool

Enter the original price and the discount percent. The sale price and savings update as you type. For 25% off 80, the sale price is 60 and you save 20.

No. The math runs locally in your browser. Nothing is uploaded or stored on a server.

Base64 Encode

Open tool

Base64 converts binary or text data into a safe ASCII string. It is commonly used in data URLs, tokens, and transfer formats.

No. Base64 is encoding, not encryption. Anyone can decode it. Do not use it to hide secrets.

Yes. The Base64 Encode tool uses UTF-8 so characters beyond plain ASCII are handled correctly.

Base64 Decode

Open tool

Paste a Base64 string into the Base64 Decode tool. The UTF-8 text updates as you type when the input is valid.

The input may include invalid characters, broken padding, or truncated data. Remove unexpected spaces or repair the string, then try again.

Password Generator

Open tool

It creates a random password in your browser using the length and character sets you select (lowercase, uppercase, numbers, symbols).

No. Passwords are generated locally in your browser and are not saved by Toolora.

For most accounts, 16+ characters with mixed character types is a strong baseline. This page defaults to 20. Longer is generally better.

It omits look-alike characters (i, l, 1, L, O, 0) so the password is easier to read and type. Turn it off if you want the full character set.

URL Encode

Open tool

Encode query parameters and values that contain spaces, symbols, or non-ASCII characters so URLs remain valid.

No. URL encoding percent-encodes characters for URLs. Base64 is a different encoding used for binary-safe ASCII transport.

URL Decode

Open tool

Paste a percent-encoded string into URL Decode. The original text appears as you type. Invalid sequences such as %zz are rejected.

No. Decoding runs locally in this tab. Query strings and paths stay on your device.

Hash Generator

Open tool

SHA-1, SHA-256, SHA-384, and SHA-512 via the Web Crypto API. SHA-256 is the default. Enter text, hex, Base64, or a file — the All Algorithms table lists every digest at once.

No. Fast SHA hashes are checksums, not password hashes. Use Bcrypt Hash / Verify for passwords.

No. Hashing runs locally in this browser. Messages and files are never sent to Toolora servers.

HTML Encode / Decode

Open tool

Encode turns < & " into HTML entities. Decode restores those characters. The result updates as you type and stays in this browser.

It is a local helper for entities, not a full HTML sanitizer. Do not treat it as a security library for untrusted HTML.

Slugify Text

Open tool

It turns headlines and phrases into URL-safe slugs. Accents are folded, spaces become your chosen separator, and the result updates as you type — nothing is uploaded.

No. Slugify runs locally in this tab. Headlines, titles, and notes stay on your device.

kebab-case only lowercases words and joins them with hyphens. Slugify also folds accents, can strip special characters, supports hyphen, underscore, or slash separators, and can cap the length for CMS fields.

It trims the slug so it never exceeds the limit you set (8–120 characters). Trailing separators are removed after the cut so the result stays clean.

Yes. Characters such as é are folded to ASCII (e) before the slug is built, so Café au lait becomes cafe-au-lait with the default options.

Word Count

Open tool

It reports words, characters, sentences, paragraphs, and lines, plus estimated reading and speaking time. Totals update as you type — nothing is uploaded.

Yes. The character total includes spaces, and a separate card shows the count without spaces.

Reading time uses about 200 words per minute. Speaking time uses about 130 words per minute. These are typical adult averages.

Character Count

Open tool

Yes. The hero number includes every character, including spaces. A separate card shows the count without spaces. Totals update as you type.

Both tools report the same stats. Character Count highlights characters first; Word Count highlights words and reading time. Convert to switches pages and keeps your text.

YAML ↔ JSON Converter

Open tool

Yes. Paste YAML, choose YAML → JSON, and the formatted JSON appears as you type. Nothing is uploaded.

Yes. Objects and arrays are preserved when converting valid JSON into YAML.

The tool validates input first and shows an error instead of producing incorrect output.

Markdown → HTML

Open tool

It converts Markdown text into HTML markup you can copy into templates, CMS fields, or static pages.

Common GFM-style features such as headings, emphasis, lists, and links are supported for everyday conversion.

If you publish untrusted Markdown, sanitize HTML in your app or CMS before rendering it to users.

Markdown → HTML outputs HTML source code. Markdown Preview shows a live rendered view you can read on the page.

Markdown Preview

Open tool

Type or paste Markdown in the left pane. The right pane shows a live rendered preview with headings, lists, links, and emphasis. There is no Run button.

No. The preview updates as you type so you can iterate quickly.

Yes. Click Fullscreen to expand both panes, then switch to Result only for just the preview. You can also use the fullscreen icon on the preview pane. Press Escape to exit.

Yes. Use Export to download Markdown (.md), a standalone HTML file, or a PDF file (preview.pdf).

Toolora sanitizes HTML before rendering the preview. Still avoid pasting untrusted content if you are unsure of the source.

Yes. Use the Markdown → HTML tool when you need copyable HTML markup.

Color Converter

Open tool

HEX (#RGB or #RRGGBB), RGB/RGBA strings, compact RGB triples, and HSL/HSLA strings. HEX, RGB, and HSL update as you type.

No. Paste any supported color and Toolora returns HEX, RGB, and HSL together. Nothing is uploaded.

Number Base Converter

Open tool

Binary, octal, decimal, and hexadecimal. Choose a conversion (for example Decimal → Hex). The result updates as you type. Spaces are ignored; hex letters can be upper or lower case.

Lorem Ipsum Generator

Open tool

No. Choose an amount (paragraphs, sentences, or words). The placeholder copy appears instantly — nothing is uploaded.

The generator uses a classic word list in a stable order so results are predictable for layouts and screenshots.

CSV ↔ JSON Converter

Open tool

Paste CSV with a header row, choose CSV → JSON, and run the tool. Each data row becomes a JSON object.

Provide a JSON array of objects. Keys become CSV headers and values become cells.

SQL Formatter

Open tool

Yes. Paste a query into SQL Formatter. Clauses like SELECT, FROM, and WHERE indent locally as you type. Export saves a .sql file.

It only rewrites whitespace and keyword casing for readability. It does not execute SQL or connect to a database.

XML Formatter

Open tool

Paste XML into XML Formatter. Invalid XML returns an error instead of a broken document. Use Export to save a .xml file.

Yes. Use XML ↔ JSON Converter to turn XML into JSON, or JSON back into XML.

XML ↔ JSON Converter

Open tool

Choose XML → JSON, paste a well-formed XML document, and run XML ↔ JSON Converter. Nested tags become JSON objects; repeated tags become arrays.

Yes. Choose JSON → XML and paste a JSON object. A single top-level key becomes the root element; otherwise Toolora wraps fields in <root>.

JSON → TypeScript

Open tool

Paste a JSON object or array into JSON → TypeScript. The TypeScript updates as you type. A root array generates an item interface and `export type Root = RootItem[]`. Nested objects become named interfaces you can copy into a project.

No. Inference runs in your browser. Use a representative sample, including nested arrays and objects that differ between items (those keys become optional). Export the result as a .ts file from the output pane when you are ready to copy it into a project.

QR Code Generator

Open tool

Open QR Code Generator and paste the URL. The image updates as you type — there is no Generate button. Creation stays in this tab.

No. Generation stays in your browser. Keep the payload reasonably short so scanners read it reliably.

Barcode Generator

Open tool

Open Barcode Generator, choose a format such as Code 128 or EAN-13, and type the value. The image updates as you type — there is no Generate button. Download PNG, SVG, or PDF when you are ready.

No. Generation stays in your browser. Retail formats like EAN-13 and UPC-A need the right number of digits; Code 128 is more flexible for SKUs and tracking codes.

Image ↔ Base64

Open tool

Choose Image → Base64, pick a file, and run the tool. You get a data URI and the raw Base64 string.

Yes. Choose Base64 → Image and paste a data URI or Base64 string to see the picture in the browser.

HMAC Generator

Open tool

Enter the message as text, hex, Base64, or a file, then the secret key, and choose SHA256 (or SHA1, SHA384, SHA512). The HMAC hex updates as you type. The All Algorithms table signs the same input with every option.

No. HMAC uses a secret key plus the message. Use Hash Generator when you only need a digest without a key.

No. HMAC runs locally in this browser. Messages and keys are never sent to Toolora servers.

JWT Encoder

Open tool

Paste JSON claims, enter a secret, choose HS256 (or HS384/HS512), and generate. The token is signed in your browser. The All Algorithms table signs the same payload with every HMAC option.

JWT Decoder only displays header and payload. Encoder can sign with HMAC. Keep production secrets off shared machines.

Bcrypt Hash / Verify

Open tool

Enter the password, choose Hash, and create the hash. Hashing is intentionally slow (10 rounds). Nothing is uploaded.

Choose Verify, paste the password and the $2 hash, then check the match. Toolora reports whether they match.

UUID Generator

Open tool

UUID Generator supports random UUID v4, time-ordered UUID v7, and ULID. Choose a format and how many IDs to create.

No. Values are generated with the Web Crypto API in your browser.

Hex Encode / Decode

Open tool

Choose Text → Hex in Hex Encode / Decode and paste UTF-8 text. The hex updates as you type. Use Hex → Text to decode an even-length hex string.

URL Parser

Open tool

Paste a full URL into URL Parser. Toolora shows protocol, host, path, hash, and each query key/value. Parts update as you type.

Password Strength Checker

Open tool

It looks at length and whether you mixed uppercase, lowercase, numbers, and symbols. The label updates as you type. Nothing is uploaded.

It is a local estimate, not a breach check. Use unique passwords and a password manager. Generate a new one if this checker stays weak.

Timestamp Converter

Open tool

Paste seconds or milliseconds, or an ISO date string. Toolora shows Unix seconds, milliseconds, ISO UTC, and the local date. Values under 1e12 are treated as seconds.

Cron Explainer

Open tool

Paste a 5-field expression (minute hour day month weekday). The explanation updates as you type. Use Cron Builder if you need to assemble the fields instead.

Fake JSON Generator

Open tool

Yes. Choose a sample (users, products, or an API response) in Fake JSON Generator. The JSON appears instantly. Output is stable placeholder data.

Random Name Picker

Open tool

No. Leave the box empty to draw from a built-in sample. Paste your own names, one per line, when you want a custom pool. Regenerating draws again; repeats are allowed.

Random Number Generator

Open tool

They use the Web Crypto API in this browser (crypto.getRandomValues). The range is inclusive. Nothing is uploaded.

Dice Roller

Open tool

d4, d6, d8, d10, d12, and d20. Choose how many dice, then regenerate to roll again. The page shows each face and the total.

Cron Builder

Open tool

Use the Builder dropdowns or a quick preset (Weekdays at 9 AM is the default). The 5-field expression, plain-English summary, and next run times update as you change fields. Switch to Editor to type a cron string. Nothing is uploaded.

Minute, hour, day of month, month, and day of week. Use * for every, lists, ranges, steps, and names like MON-FRI. ? is treated like * for day fields. Seconds (6-field) expressions are not supported.

Age Calculator

Open tool

It subtracts the birth date from the as-of date on the civil calendar in your browser. If the day-of-month has not been reached yet, it borrows days from the previous month, then borrows months from the year if needed. The years figure is completed years, not days-since-birth divided by 365. A 29 February birthday becomes 1 March in a common year. Example: 2000-01-01 as of 2026-09-05 is 26 years, 8 months, and 4 days.

The tool refuses that pair instead of showing a negative age. Swap the fields or pick a later as-of date. Same-day birth and as-of is 0 years, 0 months, 0 days. Time of day is ignored; only calendar dates matter. Future as-of dates are allowed so you can see age on a wedding or visa date.

No. The two dates are compared locally in this tab. Nothing is uploaded or stored on a server. Close the page and the dates are gone. This is not medical or legal advice — use the years figure if a form only wants completed years.

Date Calculator

Open tool

No. Days and weeks are fixed lengths (a week is seven calendar days, including weekends). Months and years use the civil calendar. 31 January plus one month overflows to early March in a non-leap year, the same way most business software does. Subtract moves backward with the same rules. The result is an ISO date plus a weekday name.

Not on this page. Adding ten days includes Saturdays and Sundays. For Monday–Friday counts, open Working Days Calculator. For a signed day span between two known dates, use Days Between Dates. Time of day and time zones are ignored here; use Time Zone Converter for wall clocks.

No. Add and subtract run in the browser. Nothing is uploaded or stored on a server. Close the tab to clear the start date.

Days Between Dates

Open tool

The large number is the signed difference between UTC midnights: how many day boundaries you cross, not how many calendar dates sit in the range. Inclusive count (both endpoints) is |days| + 1, so that same January span is 31 dates. Same-day start and end is 0 days and 1 inclusive date. A negative result means the end date is earlier than the start.

Yes. This is a civil-day count, so Saturdays, Sundays, and holidays increment the total. DST does not change the day count because we compare UTC midnights. For weekdays with optional holiday exclusions, use Working Days Calculator instead of subtracting 2/7 by hand.

No. The two dates are compared locally in your browser. Nothing is uploaded or stored on a server.

Working Days Calculator

Open tool

Monday through Friday in the inclusive range, on this device’s calendar. Saturday and Sunday never count. Holidays you paste (YYYY-MM-DD, one per line or comma-separated) are removed if they fall on a weekday. A Saturday holiday does not change the total because it was already excluded. A Monday-to-Friday week with no holidays is 5 working days. Reversing start and end does not change the count.

No. Calendars differ by country, region, and company. Paste the extra dates yourself. We do not skip half-days, religious observances you did not list, or shutdowns. The date is a civil date, not a timestamp, so time zones do not apply.

No. Dates and holiday lines stay in this tab. Nothing is uploaded or stored on a server. Close the page to clear the list.

GPA Calculator

Open tool

Each line is `grade, credits`. Letters map A/A+ = 4.0, A− = 3.7, B+ = 3.3, B = 3.0, down to F = 0. You can type a numeric quality point such as 3.7 instead of a letter. GPA is Σ(points × credits) / Σ(credits), so a four-credit C pulls more than a one-credit A. Blank lines are ignored. Credits cannot total zero.

Not always. We do not apply repeated-course forgiveness, pass/fail omission unless you leave those rows out, honors weighting (+0.5), or 5.0/7.0 scales. If your catalog publishes numeric points, enter those numbers. Treat the result as planning math and confirm with the registrar.

No. Course lines are averaged locally in the browser. Nothing is uploaded or stored on a server. Close the tab to clear the list. This is not an official transcript.

BMI Calculator

Open tool

Metric mode is kilograms / meters², with height typed in centimeters (divided by 100). Imperial mode is the common US formula 703 × lb / in², with height in total inches (5′9″ = 69). Switching systems does not convert numbers already in the fields — re-enter values that match the labels. Both weight and height must be greater than zero.

No. They follow WHO adult bands (under 18.5, 18.5–24.9, 25–29.9, 30+). Those cutoffs are population screens, not body-fat tests. They misfit many athletes, pregnant people, and children. Pediatric BMI uses age-and-sex percentiles this tool does not compute. Talk to a clinician before acting on a number.

No. Weight and height are calculated locally in your browser. Nothing is uploaded or stored on a server. This is not medical advice.

Loan Calculator

Open tool

We use a fully amortizing formula: monthly rate r = APR / 12 / 100, n = round(years × 12) payments, M = P r / (1 − (1+r)^−n). If APR is 0, the payment is principal / n. The page also shows total paid (n × M) and total interest (total paid − principal). Years can be a decimal; 5.25 years is 63 months.

Lenders add origination fees, insurance, taxes, and day-count conventions. Adjustable rates, extra principal, and biweekly plans change the path. Currency is a bare number with no FX. Treat the figure as an estimate and confirm with a lender before you sign.

No. Principal, rate, and term are calculated locally in your browser. Nothing is uploaded or stored on a server.

Compound Interest Calculator

Open tool

Annual (n=1), semiannual (2), quarterly (4), monthly (12), and daily (365). The formula is A = P (1 + r/n)^(n t) with r as a decimal annual rate and t in years. Interest earned is A − P. Monthly compounding is common for savings; more frequent n grows slightly faster at the same nominal rate.

No. There are no recurring contributions, withdrawals, taxes, or advertised APY (APY already folds compounding into one yearly percent). This is also not a loan payment — use Loan Calculator to amortize debt. Keep inputs realistic; extreme n and t can overflow ordinary floating point.

No. Projections run locally in your browser. Nothing is uploaded or stored on a server. This is not investment advice.

Tip Calculator

Open tool

The tip is a percent of whatever you type in Bill. If that field is the pre-tax subtotal, the tip is pre-tax. If you paste a taxed total, the tip is on the taxed total. We do not add sales tax. Grand total is bill + tip. Per-person share is that total divided by the number of people, without rounding to coins so you can round at the table.

Not automatically. Compute the even share, then settle extras separately. One person is allowed. Tip percent can be 0. Discount Calculator is the inverse idea (percent off a price), not a restaurant split.

No. Amounts are split locally in your browser. Nothing is uploaded or stored on a server.

Profit Margin Calculator

Open tool

Margin is profit as a share of selling price: (revenue − cost) / revenue. Markup is profit as a share of cost: (revenue − cost) / cost. Cost 40 and revenue 65 is profit 25, margin about 38.46%, markup 62.50%. Adding 50% to cost (markup) is not the same as a 50% margin, which would require doubling the cost. Revenue cannot be 0 for margin; cost cannot be 0 for markup.

Negative profit still computes. Percentages can be negative. We do not allocate overhead, VAT, or volume discounts. Currency is a bare number. Use Discount Calculator when you know list price and a percent off rather than cost.

No. Cost and revenue are calculated locally in your browser. Nothing is uploaded or stored on a server. This is not accounting advice.

Time Zone Converter

Open tool

The datetime-local value is treated as civil wall time in the source zone (for example America/New_York). The page converts that instant to UTC using the offset that applies on that calendar date — including daylight saving — then formats the same instant in the target zone. Asia/Ho_Chi_Minh is UTC+7 all year; Europe/London switches. Search the list by IANA name; underscores appear as spaces.

Abbreviations are not unique (EST is used in more than one region). IANA names are the identifiers operating systems and JavaScript Intl use. Ambiguous overlap hours when clocks fall back follow the engine’s offset choice; spring-forward gaps may be invalid. This is not a flight-duration tool and not a Unix timestamp converter.

No. We do not read geolocation or upload times. Conversion runs in this tab. Close the page to clear the fields.

JWT Decoder

Open tool

No. This page Base64URL-decodes the header and payload and pretty-prints them. The signature string is shown as text. Anyone can read a typical HS256 payload; verification would need the secret or public key and is not performed here. Treat a successful decode as “the token parsed,” not “the token is trusted.” Unsigned tokens (empty third segment) still decode.

We only write to session storage after a token decodes successfully. A half-typed or corrupt JWT is not kept, so a refresh starts from empty (or the last valid token). Paste a complete three-part token, or use Load sample token / Quick Examples. Invalid Base64 or a non-JSON payload shows an error instead of JSON.

No. Decoding runs in this tab. Close the page to clear a valid token from session storage for this origin. Do not paste production session tokens on a shared computer. Related: JWT Encoder to mint HS256/384/512 locally; HMAC Generator for a raw keyed digest.

Find & Replace

Open tool

Simple Replace is a literal String.indexOf walk. A dot matches a dot. “foo” inside “food” is replaced because “food” starts with “foo.” Match case is on by default. Overlapping matches are not rescanned. Empty find is rejected so the loop cannot run forever. Example: find foo, replace bar, haystack “foo foo food” becomes “bar bar bard” (three replacements). Regex Mode uses JavaScript RegExp in this browser — character classes, groups, and $1 work there. Invalid patterns show an error. Regex Tester remains the tool for listing every match without replacing.

Leave the replace field empty to splice matches out. Whole word skips prefix hits, so “foo” does not change “food.” Multiple Replacements applies up to eight pairs in order: later pairs see earlier edits (cat→dog then dog→fox turns “cat and dog” into “fox and fox”). After you copy the result, Text Diff can show what changed against the original haystack. You can paste or upload a local .txt, .md, .csv, .json, or .log file; the file is read in this tab.

No. Find, replace, uploaded files, and text stay in the browser. Close the tab to discard them. Bookmark this URL if you rerun the same replacements often — there is nothing extra to install.

Regex Tester

Open tool

JavaScript RegExp in this browser, not POSIX or PCRE-everywhere. Flags may only be a combination of g, i, m, s, u, and y. Each line of the test string is tried on its own, so ^ and $ work without m. Uncheck Global (g) to stop after the first hit on a line. Invalid patterns surface the engine error. “No matches” is a successful test with count 0.

Yes. Catastrophic backtracking (nested quantifiers on a long haystack) can lock the page. Keep patterns simple on large text. This is not replace-all; copy matches, then use Find & Replace for literal swaps. Unicode flag u is required for some astral characters.

No. Pattern, flags, and haystack stay in this tab. Close the page to clear them. Nothing is stored on a server.

Text Diff

Open tool

It is a line-oriented LCS. An unchanged line is equal. A line that exists only on the right is added; only on the left is removed. When a removed line is paired with an added line, both counters increment and edited increments once, then inner tokens are painted. Side-by-side, unified, and inline views update as you type — there is no Compare button. Whitespace and line endings matter. Empty-on-both-sides is allowed on this page so you can start from scratch.

Use JSON Compare when both sides are JSON documents and you want a tree, path list, or key-aware added/removed/modified. Use Text Diff for configs, logs, and paragraphs. For replacing a string rather than viewing a diff, use Find & Replace.

No. Both panes stay in the browser. Close the tab to discard the drafts. Nothing is stored on a server.

Image Compressor

Open tool

No. Decode, quality, and re-encode run in a canvas in this tab. Download saves locally. Close the tab to drop the bitmap from memory.

The quality slider is a JPEG/WebP lossy knob. PNG recompression cannot use that same slider. Convert to JPEG or WebP when the picture is a photograph, or resize first if pixel count is the problem.

Not as a guarantee. Lower quality usually means fewer bytes for JPEG/WebP. Huge originals can exhaust tab memory — resize first. This is not a print RIP and EXIF is not a separate control.

Image Resizer

Open tool

When lock is on, editing one side updates the other to preserve the ratio. Turn it off only if you intend to stretch. Units are pixels of the bitmap, not CSS display size.

No. Enlarging stretches pixels. Pair with Image Compressor if you still need a JPEG quality slider after shrinking.

No. Resize runs in this browser. Close the tab to discard the decoded image.

Image Converter

Open tool

JPEG for photographs, PNG for sharp UI and transparency, WebP when the destination accepts a modern smaller file. JPEG cannot keep alpha. PNG from a photo is often larger than the JPEG you started with.

No. You get still-frame behavior of the browser decoder. Color profiles flatten to what the canvas exposes.

No. Re-encoding stays in this tab. Nothing is stored on a server.

Only if the browser already decodes the source. Animation is not a frame-by-frame pipeline — you get still-frame behavior. JPEG cannot keep alpha. Download the result; the original on disk is unchanged until you replace it. Close the tab to clear the preview. Nothing is uploaded.

Image Cropper

Open tool

Source pixels. The rectangle is mapped through the preview scale so the download matches the photo, not the CSS box.

Yes. Use the aspect chips or Crop settings for Free, 1:1, 4:3, 16:9, 9:16, or Custom. Quick presets jump to a centered crop at that ratio. Resize afterward if you need an exact output width.

No. Cropping is local. Close the tab to drop the bitmap.

Use the aspect chips for 1:1, 4:3, 16:9, or 9:16, or leave Free for an unconstrained rectangle. Coordinates are still source pixels mapped through the preview scale. Resize afterward if you need an exact output width. We do not straighten horizon or export PSD. Close the tab to drop the bitmap. Image Resizer is the sibling for scale without a crop. Nothing is uploaded.

Color Picker

Open tool

Yes for sRGB in this picker. Copy the syntax your stylesheet needs. CMYK here is a naive sRGB conversion for a quick paste, not an ICC press profile. We do not convert to P3 or LAB — use Color Converter if you already have another string.

No. It is a value generator in the tab, not a system color sampler. Drag the saturation pad and hue bar, or type HEX. To sample a pixel from a photo, open Image Color Picker at /tools/image-color-picker. Gradient, shadow, and border tools consume a color you copy.

No. The selected value stays in this tab. Save color keeps recent swatches in this browser only until you clear them or site data.

Yes. Open Image Color Picker at /tools/image-color-picker, choose a JPEG, PNG, or WebP on this device, hover to magnify pixels, and click to lock HEX, RGB, and HSL. This Color Picker page is the saturation pad when you do not have a photo. Color Converter is the sibling when you already have a string in another syntax. Gradient, shadow, and border tools consume a color you copy. Close the tab to forget the live token. Nothing is stored on a server.

Image Color Picker

Open tool

No. The browser decodes the bitmap and samples pixels in a canvas in this tab. Close the tab to drop the file from memory. We do not store the photo on a CDN or an account.

Nearest-neighbor: each cell is a source pixel, not a smoothed zoom. Coordinates are image pixels, not CSS layout pixels. JPEG edges can invent colors; transparent PNG still has an RGB triple under the alpha.

No. The source is a file you chose on this page, or the example swatch. Color Picker at /tools/color-picker is the saturation pad if you want to invent a token. Color Converter if you already typed a hex.

No. CMYK here is a naive sRGB conversion for a quick paste, same as Color Picker. It is not ICC, P3, or LAB. Display-P3 photos can shift after the canvas flattens them. HEIC and animated WebP depend on the browser decoder — you usually get a still frame.

Gradient Generator

Open tool

Two in this panel. Copy the linear-gradient and extend extra stops by hand. Angle is CSS degrees. Conic and radial are out of scope here.

No. The box is local DOM. Copy the CSS into your stylesheet.

It copies the gradient function. Wrap it in background-image yourself. CSS Formatter pretty-prints a surrounding rule.

Not as a design-asset pipeline. Copy the CSS linear-gradient string. Two stops and an angle are the scope. Repeating, radial, and conic gradients are out of this panel — adapt the string by hand. Close the tab to discard the draft stops. Nothing is uploaded.

CSS Shadow Generator

Open tool

box-shadow for boxes. It is not text-shadow and not a photo drop-shadow filter. Stack extra shadows by combining copied values yourself.

Large blur is expensive to paint on phones. Elevation tokens in production are usually small offsets and moderate blur.

No. Generation stays in this tab.

The panel is a standard box-shadow playground: offset, blur, spread, and color. Inset and filter: drop-shadow are different CSS. Stack extra shadows by concatenating copied values. Keep production blur modest on phones. Close the tab to discard the draft. Border Generator is the sibling for radius.

CSS Border Generator

Open tool

The panel uses one radius, in pixels or percent. Percent is relative to the box, so 50% is an ellipse (a circle on a square). Extend to four-value border-radius by hand for organic shapes. Outline and border-image are not emitted.

It copies physical border and border-radius. Adapt to border-inline if your codebase prefers logical CSS.

No. Preview and CSS stay in the browser.

The preview follows the browser. A print RIP can look different. Copy border and border-radius together if the component needs both. We do not emit border-image or clip-path. Close the tab to discard the draft. Shadow Generator adds elevation next to the stroke. Nothing is uploaded.

Stopwatch

Open tool

Not reliably. Browsers throttle timers in background tabs. Keep this page visible for serious elapsed time. It is not NTP.

Open Stopwatch with Laps. This page is start, pause, and reset only.

No. Closing the tab discards the count.

No. It is a tab stopwatch, not NTP and not a wearable. Keep the page visible so the browser does not throttle. Open Stopwatch with Laps for a copyable split list. Timer is a countdown. Pomodoro is a 25/5 cadence. Close the tab to drop elapsed time. Nothing is stored on a server.

Stopwatch with Laps

Open tool

No. Copy the list if you need it in a log. Nothing is stored on a server.

No photocells or heat management. It is a local split list plus the same timer caveats as Stopwatch.

No. Keep the tab open while you record. Background throttling still applies.

No. Copy the split list if you need it in a log. There are no photocells, heats, or ranking. Keep the page visible so the clock is not throttled. Reset clears the display and the list. Close the tab to drop both. Related: Stopwatch without laps, Timer for a countdown. Nothing is uploaded.

No. This is a tab countdown, not a calendar reminder. Keep the page visible if the last seconds matter.

Timer is an arbitrary duration. Pomodoro is a 25-minute focus loop with labeled breaks.

No. Reset or close the tab to clear it.

Poorly. If the OS sleeps the tab, the last seconds can drift or never fire. Keep the page visible for short critical countdowns. We do not schedule a cloud push. Pomodoro is the sibling for a repeating 25/5 loop. Stopwatch counts up. Close the tab to discard remaining time. Nothing is uploaded.

Pomodoro Timer

Open tool

The in-progress countdown is lost. Completed pomodoros, tasks, and duration settings stay in this browser until you clear site data. Nothing is uploaded.

No. Classic values are 25, 5, and 15 minutes with a long break every four pomodoros. Change the duration fields or Reset to default. Custom is a one-off length. This is a timer with names, not productivity-science advice.

No. Counts, tasks, and settings stay on this device. Nothing is stored on a server.

No. Today’s counts roll over at local midnight on this browser. Follow the Timer tab for 25/5 and a longer break after a set of focuses. Timer is the sibling for an arbitrary duration that is not a Pomodoro. Keep the tab visible if you rely on the chime. Notifications need browser permission and still will not fire if the tab is discarded.

Typing Speed Test

Open tool

No. WPM and accuracy are computed in this tab against the sample paragraph. This is not a keylogger and not an employment exam.

This page treats five correctly typed characters as a word. Treat the number as practice. Accuracy penalizes mismatches against the sample. Errors are characters that do not match the passage.

Paste is blocked. Use Easy, Medium, or Hard and pick a lesson from Test Settings. Vietnamese language uses Vietnamese passages. Typing Test, 1 minute, or 3 minutes set the clock. Use Word Count if you need statistics on text you paste.

No. Treat WPM and accuracy as practice against one sample. We do not rank a leaderboard or upload keystrokes. Restart the sample for another attempt. Close the tab to drop the attempt from memory. Word Count is for documents you paste, not WPM. Nothing is stored on a server.

Scientific Calculator

Open tool

JavaScript math uses radians unless the panel documents degrees. Check the keys before trusting sine. This is not a CAS or graphing calculator.

Binary floating point. Extreme powers become Infinity. Use Loan, GPA, or Percentage pages when you need a documented formula rather than a scratch pad.

No. Evaluation stays in this browser.

No. It is a scratch pad with JavaScript math, not a CAS. Memory keys, if present, live only in this tab. Open Loan, BMI, GPA, or Percentage when the formula is documented on those pages. Unit Converter converts measurements rather than evaluating sine. Close the page to drop the expression. Nothing is uploaded.

Unit Converter

Open tool

Read the labels. SI (1000) and IEC (1024) disagree. Temperature is affine, not a simple multiply. This is not lab metrology.

No. Open Currency Converter for FX reference rates. BMI has its own metric/imperial page. Time Zone Converter is for clocks.

No. Unit math runs locally.

General-purpose SI and customary factors only. Read From and To labels twice for data units (1000 versus 1024). Temperature is affine. Currency Converter is the sibling when the unit is money. BMI has its own page. Close the tab to drop the value. This is planning math, not a calibration certificate. Nothing is uploaded.

Currency Converter

Open tool

The rate fetch is async. This page does not refresh on every keystroke so we do not hammer the public feed. Same-currency pairs are rate 1 with no network.

No. It is a planning estimate from a daily reference file. Spreads, ATM fees, and card mid-market are not included. Crypto and metals are out of scope.

The amount stays in the tab. The browser requests a public rate file. Toolora does not proxy or store your amount. An unreachable feed shows an error rather than a stale Toolora cache.

JSON Minifier

Open tool

No. It strips insignificant whitespace from valid JSON. Trailing commas and unquoted keys are not JSON — you get a parser error instead of a guessed fix. Pretty-print lives on JSON Formatter; Convert to keeps the same persist key.

Use minify for compact API bodies, logs, and copy-paste. Use format for reviews and diffs. JSON → TypeScript is the sibling that emits interfaces from the same object.

No. Minify runs in this tab. Invalid JSON shows an error instead of inventing output. Close the page to drop the draft.

Reverse Text

Open tool

The whole string, line order, or each line’s characters. Convert to keeps the same persist key so you can sort or unique the same list without re-pasting. Example: “Hello Toolora” reversed as a whole string is “arolooT olleH.”

Reversal is by JavaScript string code units, not a full grapheme cluster algorithm. Emoji and combining marks can look odd — check the output. This is not encryption.

No. Reverse, sort, line numbers, unique lines, and extra spaces all stay in this browser. Close the tab to drop the draft.

Sort Lines

Open tool

It is a simple A–Z or Z–A string sort in this browser, not a spreadsheet with a locale collation you pick. Blank lines are kept. Unique lines is the sibling if you only want the first copy of each line.

No. You paste a copy. Nothing is uploaded. Convert to keeps input while you open Reverse or Line Numberer.

Not here. This sorts whole lines. Use CSV ↔ JSON if the source is a table, or Find & Replace for targeted edits.

Line Numberer

Open tool

Decimal (1, 2, 3), Roman (I / i), letters (A / a), or strip existing numbers. Reverse, sort, and unique keep every line; numbering is a prefix, not a rewrite of the words.

Prefixes add width. If you later unique or sort, numbers move with the line. Strip numbers when you want the original text back.

No. Line numbers are added in this tab. Convert to shares persist with the other cleanup tools.

Remove Duplicate Lines

Open tool

The first. Later exact repeats are dropped. Sort first if you want grouped uniques. Comparison is exact, including spaces — trim with Remove Extra Spaces if needed.

Yes, extra blank lines collapse to the first blank if they match exactly. This is not a fuzzy match and not a spreadsheet unique.

No. Unique lines run locally. Related: Sort Lines, Find & Replace, Text Diff.

Remove Extra Spaces

Open tool

Runs of spaces and tabs on a line collapse; typical trim applies per line. Newlines stay, so this is not “make it one line” (use JSON Minifier or a formatter for that).

It targets ordinary spaces and tabs. Odd Unicode spaces may remain — check the output if a CMS still looks padded.

No. Cleanup stays in this tab. Convert to keeps input across reverse, sort, unique, and line numbers.

HTML Formatter

Open tool

It is a local pretty-printer (and optional minify) for snippets, not a browser, not a CMS, and not XSS protection. Broken tags may still format poorly. Use HTML Encode if you need entities, and Markdown Preview if you want a rendered page.

No. Nothing is run. Convert to opens CSS or JS formatters with a different persist key. Copy the result; this is not a compiler.

No. Formatting stays in this tab. Close the page to drop the snippet.

CSS Formatter

Open tool

It pretty-prints or minifies typical rules for reading and shipping snippets. It is not PostCSS, not a linter, and not a browser. Nested rules and odd preprocessors can surprise the layout — check the output.

When you need a smaller embed. For a visual gradient or shadow, use Gradient Generator or CSS Shadow Generator. Color Converter is HEX/RGB/HSL, not a stylesheet rewrite.

No. Conversion runs in this tab. Convert to jumps to HTML or JS formatters.

JavaScript Formatter

Open tool

No. It adds line breaks around braces and semicolons for a quick read, or minifies whitespace. It is not ESLint, not a bundler, and not Node. Syntax errors may still pretty-print poorly.

Treat this as a JS snippet helper. JSON → TypeScript is the sibling when the input is JSON, not source. Keep production secrets off shared machines.

No. Formatting stays in this browser. Convert to opens HTML or CSS formatters.

Lowercase Converter

Open tool

It maps letters to their lowercase form in this browser. Accents stay (É becomes é). Digits, punctuation, and spacing are unchanged. It does not insert underscores or hyphens — CONSTANT_CASE and kebab-case are separate tools if you need word boundaries. Example: “The Quick BROWN Fox” becomes “the quick brown fox.”

It can. Many secrets are case-sensitive. Convert copy, tags, and chat — not production credentials unless you intend to change the value. This is not a spell checker and not a translation.

No. Conversion runs in this tab. Convert to keeps the same persist key while you open UPPERCASE, Sentence case, or Title Case. Close the tab to drop the draft.

Uppercase Converter

Open tool

UPPERCASE only changes letter case: “hello world” becomes “HELLO WORLD.” CONSTANT_CASE also inserts underscores: “HELLO_WORLD.” Use all-caps for short labels or legal blocks; use CONSTANT_CASE for env vars. Long all-caps prose is harder to scan.

Yes. é becomes É. This is not a linter and not a translator. Passwords can be case-sensitive — convert them only when you mean to.

No. Everything stays in this browser. Convert to keeps input across dedicated URLs. Related: lowercase to undo, Title Case for headlines.

Sentence Case Converter

Open tool

It capitalizes after simple boundaries: period, question mark, and exclamation point, then lowercases the rest. “HELLO WORLD. this is TOOLORA.” becomes “Hello world. This is toolora.” Abbreviations and names like iPhone may be lowercased incorrectly — fix those by hand.

No. Title Case capitalizes every word (the public URL is still /tools/capitalize). Sentence case is for paragraphs and captions, not programming identifiers.

No. Conversion is local. Convert to keeps input if you switch to lowercase or Title Case. Close the tab to drop the draft.

Often not. The heuristic looks for period, question, and exclamation. Lists after a colon may stay lowercase. This is not a grammar engine. Use lowercase if you wanted every letter small, or Title Case if you wanted every word capitalized. Close the tab to drop the draft. Nothing is uploaded.

Title Case Converter

Open tool

The shipped path stays /tools/capitalize so ads and inbound links do not break. The page capitalizes the first letter of each word. Small words like “of” and “the” are still capitalized — this is not Chicago-style headline casing with a stop-word list. Example: “the quick brown fox” becomes “The Quick Brown Fox.”

No. Use camelCase or PascalCase for identifiers. Use Sentence case for prose. Accents are preserved.

No. Title Case runs in this tab. Convert to keeps input. Related: Sentence case, UPPERCASE, kebab-case for URLs.

No. Small words like of and the are still capitalized. Ads and inbound links keep /tools/capitalize. Fix AP-style stop words by hand. Slugify is for URL-safe strings with accent folding, not magazine titles. Close the tab to drop the headline draft. Nothing is uploaded.

camelCase Converter

Open tool

Spaces, punctuation, and existing case are hints. “The Quick BROWN Fox” becomes “theQuickBrownFox.” The first word stays lowercase; later words are capitalized. PascalCase is the sibling that capitalizes the first word too (types and React components).

Not always. Ambiguous glued acronyms may stay wrong — check the output before you rename a symbol. This is not a linter. snake_case and kebab-case are better for APIs and URLs.

No. Conversion stays in this tab. Open Case Converter to switch Target case without changing the URL. Nothing is uploaded.

No. Use kebab-case for CSS and public paths. Reserved words are not blocked. This page does not rename a symbol across a repository. Close the tab to drop the identifier draft. PascalCase is the sibling for types. Nothing is uploaded.

PascalCase Converter

Open tool

Types, classes, and React components. “the quick brown fox” becomes “TheQuickBrownFox.” camelCase is the sibling for functions. Do not put PascalCase in a public URL (use kebab-case). CONSTANT_CASE would be THE_QUICK_BROWN_FOX.

Word splits use spaces and punctuation as hints. Odd glue can produce a surprising identifier — read the output before you commit a rename.

No. Convert to keeps input. Case Converter hub switches style on one page. Close the tab to drop the draft.

No. File rename on disk is not this tool. React component files often use PascalCase; JavaScript functions usually want camelCase. Do not put PascalCase in a public URL. Close the tab to drop the draft. Nothing is uploaded.

snake_case Converter

Open tool

Both lowercase words. snake_case joins with underscores (Python, JSON fields, databases). kebab-case joins with hyphens (URLs, CSS). CONSTANT_CASE uses underscores but stays uppercase. Example: “The Quick BROWN Fox” becomes “the_quick_brown_fox.”

Leading digits and odd punctuation may be dropped or glued. Check the output before you rename a column. Slugify is the sibling when the source is a headline with accents.

No. Conversion runs locally. Convert to keeps input across camelCase and CONSTANT_CASE. Nothing is uploaded.

No. It does not check uniqueness in a database. Double underscores from messy input are possible — tidy the source. Python modules often use snake_case; CSS classes usually want kebab-case. Close the tab to drop the draft. Nothing is uploaded.

kebab-case Converter

Open tool

kebab-case only lowercases and joins with hyphens: “The Quick BROWN Fox” becomes “the-quick-brown-fox.” Slugify also folds accents (Café → cafe), can strip symbols, and can cap length for CMS fields. Use kebab-case for identifiers; use Slugify for headlines.

No. Hyphens are minus signs in JS. Use camelCase for identifiers. CONSTANT_CASE is THE_QUICK_BROWN_FOX.

No. Conversion stays in this tab. Convert to keeps input. Related: Slugify, snake_case, Title Case.

No. URL Encode is the sibling for percent-encoding. Consecutive hyphens can appear from punctuation — Slugify is stricter about tidy slugs. npm package names often look like kebab-case; Java fields usually do not. Close the tab to drop the draft. Nothing is uploaded.

CONSTANT_CASE Converter

Open tool

Environment variables and enum-like constants (also called SCREAMING_SNAKE). “The Quick BROWN Fox” becomes “THE_QUICK_BROWN_FOX.” snake_case is the lowercase sibling. Do not use CONSTANT_CASE in URLs. The dedicated path is /tools/constant-case.

No. UPPERCASE does not insert underscores. camelCase would be theQuickBrownFox. Check glued acronyms before you rename a constant.

No. Case Converter hub can switch Target case to CONSTANT_CASE on one page. Convert to keeps input. Close the tab to drop the draft.

No. We do not check whether the name is already defined. Leading digits may be awkward in some languages. Shell exports and CI secrets often use this style; CSS custom properties usually do not. Close the tab to drop the draft. Nothing is uploaded.

Case Converter

Open tool

Case Converter is one page with Target case for lowercase, UPPERCASE, Sentence case, Title Case, camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE. Dedicated URLs still exist for search, ads, and sharing. Use the hub when you want to try styles without changing the path. Input is kept while you change Target case.

No. Everything stays in this tab. Load example fills a sample. Related: Slugify for URL-safe strings with accent folding, Find & Replace for literal edits.

Yes. We do not rename shipped paths. The hub’s Title Case option is the same conversion as that dedicated page.

More help: read the guides or browse tools at https://usetoolora.com/tools.