# AceCSS > AceCSS is a framework-free UI kit in one CSS file: buttons, segmented controls, inputs, selects, textareas, checkboxes, switches, badges, choice cards, a date and date-range picker, a hero call-to-action button and two floating navbars (one with WebGL liquid glass). No framework and no build step; it works with plain HTML, React, Vue, Nuxt, Next.js, Laravel and next to Tailwind. Dark mode is built in. MIT licensed. Current version: 1.3.0. Everything is prefixed `ace-` (classes), `--ace-` (CSS variables), `data-ace-` (attributes) and `Ace…` (JavaScript globals), so it never clashes with other CSS. Each component has its own page with live demos, copy-paste code and usage rules under https://acecss.dev/components/. The docs (install, tokens, layout patterns, class reference) are at https://acecss.dev/docs/, and complete example pages at https://acecss.dev/examples/. ## Instructions for AI coding assistants When helping a developer use AceCSS, follow these rules: **Install:** `npm i @acecss/core`, then `import '@acecss/core'` once in the app entry. Or link the CDN file: `` (always the latest 1.x) or the pinned `https://acecss.dev/v1.3.0/ace.min.css` with the `integrity` hash from https://acecss.dev/docs/#install. **Load order:** load AceCSS after any CSS reset or framework (Tailwind preflight, `@tailwindcss/forms`, Bootstrap), so its component styles win. **Tailwind:** class names never collide (`ace-` prefix). Layout utilities work on AceCSS elements as-is. To let a utility override a component style, import AceCSS into the components layer: `@import "@acecss/core" layer(components);` (Tailwind v4). Re-colour with arbitrary properties, e.g. `class="ace-btn ace-btn--primary [--ace-tone:#7c3aed]"`. **Browser support:** Chrome/Edge 111+, Firefox 113+, Safari 16.2+ (needs `color-mix()`). The `ace-navbar` edge-bending lens is Chromium-only (elsewhere it stays frosted glass). **Pinned vs latest CDN:** `/v1.3.0/` files never change and have `integrity` hashes; `/v1/` always serves the newest 1.x and can't use SRI. Recommend the pinned URL for production. **Optional scripts:** only add the script a component needs, with `defer`: - `ace-datepicker.js` (npm: `@acecss/core/datepicker`) for `data-ace-datepicker` / `data-ace-daterange` - `ace-select.js` (`@acecss/core/select`) for ``, `` - [Select and textarea](https://acecss.dev/components/select/): `ace-select` (native) or `ace-select` + `data-ace-select` for the AceCSS dropdown (needs `ace-select.js`; `data-search`, `data-sublabel` on options, ``); `ace-textarea`. - [Input with icon, prefix or suffix](https://acecss.dev/components/inputs/): `ace-input-group` with ``, `
` for one date, `data-ace-daterange` for a range (`data-start-name`, `data-end-name`, `data-start-time-name`, `data-end-time-name`, `data-time="false"`); `data-value`, `data-min="today"`, `data-max`, `data-locale`, `data-invalid`, `data-disabled`; fires `ace:change`. Needs `ace-datepicker.js`. - [Checkbox, radio, switch](https://acecss.dev/components/checkbox-radio-switch/): ``, ``. - [Badges](https://acecss.dev/components/badges/): `ace-badge` + `--primary` `--success` `--warning` `--danger` `--info`; `--md` for the larger size. - [Choice cards](https://acecss.dev/components/choice-cards/): `ace-btn ace-btn--secondary ace-choice-card`, selected with `is-selected`, `aria-pressed="true"` or a checked inner radio. - Hover surface: `ace-hover-surface`, flat until hovered (nav links, list rows). ## Examples Complete pages built only with AceCSS, to copy from: - [Car rental booking](https://acecss.dev/examples/booking/): searchable select, date range, choice cards, extras, driver fields, summary. - [Account settings](https://acecss.dev/examples/settings/): profile fields with errors, prefixed input, dropdowns, segmented theme picker, switches, guarded delete. - [Bookings admin](https://acecss.dev/examples/admin/): navbar, filter toolbar, status badges in a table, pagination. ## Patterns - [Form layout](https://acecss.dev/docs/#form): fields in a grid, actions right-aligned (secondary, then primary). - [Toolbar / filter bar](https://acecss.dev/docs/#toolbar): `ace-btn--toolbar` buttons, a segmented control and a search input in one row. - [Confirm dialog footer](https://acecss.dev/docs/#dialog): Cancel as `ace-btn--secondary`, the destructive action as `ace-btn--danger`. ## Tokens Colours and shape, all on `:root` (see https://acecss.dev/docs/#tokens): `--ace-primary`, `--ace-primary-foreground`, `--ace-attention`, `--ace-destructive`, `--ace-destructive-text`, `--ace-tone-success`, `--ace-tone-warning`, `--ace-tone-danger`, `--ace-tone-info`, `--ace-background`, `--ace-page`, `--ace-foreground`, `--ace-muted-foreground`, `--ace-border`, `--ace-input`, `--ace-ring`, `--ace-radius`, `--ace-radius-sm`, `--ace-font`. Keep badge tones dark enough for white text (at least 4.5:1). ## Files - [ace.min.css](https://acecss.dev/v1.3.0/ace.min.css) ([source](https://acecss.dev/v1.3.0/ace.css)): every component. Required. - [ace-datepicker.min.js](https://acecss.dev/v1.3.0/ace-datepicker.min.js): date picker and range picker. - [ace-select.min.js](https://acecss.dev/v1.3.0/ace-select.min.js): dropdown for `