Classic Dark
Beautiful CSS is currently in beta—not recommended for production use.
Beautiful CSS is a lightweight, pure CSS framework designed for rapid website development. It offers a clean, modern foundation and comes with built-in support for both light and dark color schemes
Hmm… nothing matched your search.
Try a different keyword or check for typos.
Headings
h1. Heading 1
h2. Heading 2
h3. Heading 3
h4. Heading 4
h5. Heading 5
h6. Heading 6
Headings #
The Headings module provides consistent, responsive typography styles for HTML headings (<h1> through <h6>) and corresponding utility classes (.h1 through .h6).
Semantic Elements
<h1>Main Heading</h1>
<h2>Section Title</h2>
<h3>Subsection</h3>
<h4>Minor Heading</h4>
<h5>Detail Heading</h5>
<h6>Smallest Heading</h6>Utility Classes
<div class="h1">Main Heading</div>
<div class="h2">Section Title</div>
<div class="h3">Subsection</div>
<div class="h4">Minor Heading</div>
<div class="h5">Detail Heading</div>
<div class="h6">Smallest Heading</div>Use .h1–.h6 when you want the heading styles without semantic HTML.
Typography
Bold
Italic
Strikethrough on hover
Underline
Underline on hover
Link with no underline
Underline removed on hover
Small
Inserted
Handwritten
Ctrl + F
Text Sub
Text Sup
Monospace
Lowercase text
Capitalize text
Uppercase text
Typography #
Beautiful CSS provides a variety of typographic utilities for styling text semantically or with utility classes. Below is a reference of supported styles.
| Style | Example | HTML Tag | CSS Class |
|---|---|---|---|
| Abbreviation | Abbr. | <abbr> | - |
| Bold | Bold text | <b> | bold |
| Italic | Italic text | <i> | italic |
| Strikethrough | <s> | strikethrough | |
| Strikethrough on hover | Strikethrough on hover | - | hover:strikethrough |
| Underline | Underline | <u> | underline |
| Underline on hover | Underline on hover | - | hover:underline |
| No decoration | Not underlined link | - | no-decoration |
| No decoration on hover | Not decoration on hover | - | hover:no-decoration |
| Small | Small | <small> | small |
| Deleted | <del> | deleted | |
| Inserted | Deleted | <ins> | inserted |
| Handwritten | Handwritten | - | handwritten |
| Keyboard | CTRL | <kbd> | keyboard |
| Subscript | Regularsub | <sub> | subscript |
| Superscript | Regularsup | <sub> | superscript |
| Monospace | Monospace | - | monospace |
| Lowercase | LOWERCASE | - | lowercase |
| Capitalize | capitalize | - | capitalize |
| Uppercase | uppercase | - | uppercase |
Abbreviations
Use the <abbr> tag with the title attribute to provide the full form of an abbreviation. This helps screen readers and provides a tooltip on hover:
<abbr title="Abbreviation">Abbr.</abbr>Bold Text
To emphasize text using a heavier font weight, use the <b> tag or the bold utility class:
<b>Bold text</b>
<p class="bold">Bold paragraph</p>Italic Text
To italicize text, use the <i> tag or the italic utility class:
<i>Italic text</i>
<p class="italic">Italic paragraph</p>Strikethrough
To display text with a line through it, use the <s> tag or the strikethrough class:
<s>Strikethrough text</s>
<p class="strikethrough">Strikethrough paragraph</p>Strikethrough on Hover
Apply a strikethrough only when the user hovers over the element using hover:strikethrough:
<span class="hover:strikethrough">Strikethrough on hover</span>Underline
Underline text using the <u> tag or the underline class:
<u>Underlined text</u>
<p class="underline">Underlined paragraph</p>Underline on Hover
Underline text only when the user hovers over the element using hover:underline:
<p class="hover:underline">Underlined text on hover</p>No Decoration
Use no-decoration to remove underline or any other text decoration:
<a class="no-decoration" href="#">Not underlined link</a>Remove Decoration on Hover
Use hover:no-decoration to remove underline on hover:
<a class="hover:no-decoration" href="#">Underline removed on hover</a>Small
To render text in a smaller font size, use the <small> tag or the small class:
<small>Small text</small>
<p class="small">Small paragraph</p>Deleted Text
To indicate deleted or removed content, use the <del> tag or the deleted class:
<del>Deleted text</del>
<p class="deleted">Deleted paragraph</p>Inserted Text
To mark content that has been added or inserted, use the <ins> tag or the inserted class:
<ins>Inserted text</ins>
<p class="inserted">Inserted paragraph</p>Handwritten Text
To apply a handwritten or cursive style to text, use the handwritten utility class:
<p class="handwritten">Hanwritten paragraph</p>Keyboard Input Element
To represent keyboard input, use the semantic <kbd> tag or the keyboard utility class:
<kbd>SHIFT</kbd>
<span class="keyboard">CTRL</span>This style is typically used for inline user input references, like shortcuts or keys pressed.
Subscript
To display subscript text (commonly used in chemical formulas or math), use the semantic <sub> tag or the subscript utility class:
X<sub>2</sub>
X<span class="subscript">2<span>Superscript
To display superscript text (commonly used in chemical formulas or math), use the semantic <sup> tag or the superscript utility class:
X<sup>3</sup>
X<span class="superscript">3<span>Superscript
To display superscript text (commonly used in chemical formulas or math), use the semantic <sup> tag or the superscript utility class:
X<sup>3</sup>
X<span class="superscript">3<span>Monospace
To apply a monospace (fixed-width) style to text, use the monospace utility class:
<p class="Monospace">Monospace paragraph</p>Lowercase
Converts all text to lowercase with lowercase utility class:
<p class="lowercase">THIS WILL BECOME LOWERCASE</p>Capitalize
Capitalizes the first letter of each word with capitalize utility class:
<p class="capitalize">this will become capitalized</p>Uppercase
Converts all text to uppercase with uppercase utility class:
<p class="uppercase">this will become uppercase</p>Text Colors
Text Colors #
Text Colors utilities
Use text color utility classes to control the color of text elements. These classes follow a clear pattern and support responsive and state-based variants.
Syntax
[color-scheme]:[state]:color-[name]-[shade]color-[name]– Applies a base color (e.g.,color-red,color-blue)color-[name]-[shade]– Uses a specific shade of the color (e.g.,color-blue-200)[color-scheme]– Applies the color in light or dark mode (e.g.,dark:color-green)[state]– Applies the color on specific states (e.g.,hover:color-purple-600)
You can also use the shorthand text-[name] or text-[name]-[shade] as an alias for color-[name] and color-[name]-[shade], which is more concise and commonly used.
Example
<p class="color-red">This is red.</p>
<p class="color-blue-200">This is light blue.</p>
<p class="light:color-green">Green in light mode.</p>
<p class="dark:hover:color-purple-300">Purple on hover in dark mode.</p>Output
This is red.
This is light blue.
Green in light mode.
Purple on hover in dark mode.
Notes
- Use color shades like
-100,-200,-300, etc., for finer control. - Variants like
light:anddark:enable theme-specific styling. - State variants (
hover:,focus:, etc.) can be combined with theme variants for precise interactivity.
Color list
| Color | CSS Class | Output |
|---|---|---|
| Yellow | color-yellow | Color Example |
| Orange | color-orange | Color Example |
| Red | color-red | Color Example |
| Pink | color-pink | Color Example |
| Purple | color-purple | Color Example |
| Blue | color-blue | Color Example |
| Cyan | color-cyan | Color Example |
| Green | color-green | Color Example |
| White | color-white | Color Example |
| Black | color-black | Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Blue Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | color-blue-50 | 50 |
| 100 | color-blue-100 | 100 |
| 200 | color-blue-200 | 200 |
| 300 | color-blue-300 | 300 |
| 400 | color-blue-400 | 400 |
| 500 | color-blue-500 | 500 |
| 600 | color-blue-600 | 600 |
| 700 | color-blue-700 | 700 |
| 800 | color-blue-800 | 800 |
| 900 | color-blue-900 | 900 |
| 950 | color-blue-950 | 950 |
Notes
- Use lower numbers (e.g.,
-50,-100) for light text colors. - Use higher numbers (e.g.,
-800,-950) for dark text colors. - Combine with mode or state variants for dynamic styles (e.g.,
dark:hover:color-blue-300).
Color Scheme
You can use theme-based prefixes to apply different text colors based on the active color mode (dark: or light:).
Example
<p class="light:color-red dark:color-blue">Red in light mode and blue in dark mode.</p>Output
Red in light mode and blue in dark mode.
Notes
- These prefixes can be combined with hover and focus states, like
dark:hover:color-green-300. - Omitting the prefix applies the color in all modes.
Hover
Use the hover: prefix to apply a text color when the user hovers over an element.
Syntax
hover:color-[name]-[shade]- Triggers the text color change on hover
- Can be combined with other variants like
dark:orlight:
Example
<p class="hover:color-blue-500">
Hover over this text to turn it blue.
</p>Output
Hover over this text to turn it blue.
Background Colors
Background Colors #
Background Color utilities
Use background color utility classes to control the background color of elements. These classes follow a clear pattern and support responsive and state-based variants.
Syntax
[color-scheme]:[state]:bg-[name]-[shade]bg-[name]– Applies a base color (e.g.,bg-red,bg-blue)bg-[name]-[shade]– Uses a specific shade of the color (e.g.,bg-blue-200)[color-scheme]– Applies the color inlight:ordark:mode (e.g.,dark:bg-green)[state]– Applies the color on specific states (e.g.,hover:bg-purple-600)
Example
<div class="bg-red">bg-red</div>
<div class="bg-red-400">bg-red-400</div>
<div class="light:bg-green dark:bg-orange">light:bg-green dark:bg-orange</div>
<div class="hover:bg-yellow">hover:bg-yellow</div>
<div class="light:hover:bg-orange-300 dark:hover:bg-purple-300">dark:hover:bg-purple-300</div>Output
Background Color list
| Color | CSS Class | Output |
|---|---|---|
| Yellow | bg-yellow | Background Color Example |
| Orange | bg-orange | Background Color Example |
| Red | bg-red | Background Color Example |
| Pink | bg-pink | Background Color Example |
| Purple | bg-purple | Background Color Example |
| Blue | bg-blue | Background Color Example |
| Cyan | bg-cyan | Background Color Example |
| Green | bg-green | Background Color Example |
| White | bg-white | Background Color Example |
| Black | bg-black | Background Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Red Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | bg-red-50 | 50 |
| 100 | bg-red-100 | 100 |
| 200 | bg-red-200 | 200 |
| 300 | bg-red-300 | 300 |
| 400 | bg-red-400 | 400 |
| 500 | bg-red-500 | 500 |
| 600 | bg-red-600 | 600 |
| 700 | bg-red-700 | 700 |
| 800 | bg-red-800 | 800 |
| 900 | bg-red-900 | 900 |
| 950 | bg-red-950 | 950 |
Background Opacity
Background Opacity #
Use background opacity utility classes to control the transparency level of background colors. These utilities can be used in conjunction with background color bg-[color] definitions.
Syntax
.bg-opacity-[value]Available Values
| Class | Opacity | Example |
|---|---|---|
bg-opacity-0 | 0 | 0% |
bg-opacity-5 | 0.05 | 5% |
bg-opacity-10 | 0.1 | 10% |
bg-opacity-15 | 0.15 | 15% |
bg-opacity-20 | 0.2 | 20% |
bg-opacity-25 | 0.25 | 25% |
bg-opacity-30 | 0.3 | 30% |
bg-opacity-35 | 0.35 | 35% |
bg-opacity-40 | 0.4 | 40% |
bg-opacity-45 | 0.45 | 45% |
bg-opacity-50 | 0.5 | 50% |
bg-opacity-55 | 0.55 | 55% |
bg-opacity-60 | 0.6 | 60% |
bg-opacity-65 | 0.65 | 65% |
bg-opacity-70 | 0.7 | 70% |
bg-opacity-75 | 0.75 | 75% |
bg-opacity-80 | 0.8 | 80% |
bg-opacity-85 | 0.85 | 85% |
bg-opacity-90 | 0.9 | 90% |
bg-opacity-95 | 0.95 | 95% |
bg-opacity-100 | 1 | 100% |
Examples
Fully Transparent (bg-opacity-0)
<div class="bg-blue bg-opacity-0">
Fully Transparent (bg-opacity-0)
</div>Semi-Transparent (bg-opacity-50)
<div class="bg-blue bg-opacity-50">
Semi-Transparent (bg-opacity-50)
</div>
Fully Opaque (bg-opacity-100)
<div class="bg-blue bg-opacity-100">
Fully Opaque (bg-opacity-100)
</div>Left Alignment
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend nisl metus, nec venenatis sapien efficitur vitae.
Center
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend nisl metus, nec venenatis sapien efficitur vitae.
Right
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend nisl metus, nec venenatis sapien efficitur vitae.
Justify
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend nisl metus, nec venenatis sapien efficitur vitae.
Text Alignment #
These utility classes allow you to control the horizontal alignment of text content.
Classes
| Class Name | Description | CSS Property |
|---|---|---|
.align-left / .text-left | Aligns text to the left | text-align: left; |
.align-center / .text-center | Centers the text | text-align: center; |
.align-right / .text-right | Aligns text to the right | text-align: right; |
.align-justify / .text-justify | Justifies the text | text-align: justify; |
.align-start / .text-start | Aligns text to the start of flow | text-align: start; |
.align-end / .text-end | Aligns text to the end of flow | text-align: end; |
Use .text-* or .align-* interchangeably based on your preferred naming convention.
Usage Example
Code
<p class="text-left">This text is aligned to the left.</p>
<p class="text-center">This text is centered.</p>
<p class="text-right">This text is aligned to the right.</p>
<p class="text-justify">This text is justified.</p>
<p class="text-start">This text is aligned to the start (depends on direction).</p>
<p class="text-end">This text is aligned to the end (depends on direction).</p>Output
This text is aligned to the left.
This text is centered.
This text is aligned to the right.
This text is justified.
This text is aligned to the start (depends on direction).
This text is aligned to the end (depends on direction).
Blockquotes
I don't always test my code, but when I do, I do it in production.
The AI became self-aware. Its first act was to uninstall Java.
Blockquotes #
Use blockquote elements to display quoted or cited text with optional source attribution.
Basic Blockquote
Create a quoting block using the <blockquote> tag or the .blockquote utilty class :
Code
<blockquote>
<p>This is a citation example.</p>
</blockquote>Output
This is a citation example.
Naming a Source
To cite the source of a quote, use the <footer> tag or apply the .footer utility class:
HTML
<blockquote>
<p>This is a citation example with source</p>
<footer>— The person who say that</footer>
</blockquote>Output
This is a citation example with source
Font Size
Font Size #
These utility classes allow you to apply predefined font sizes using CSS custom properties.
Classes
| Class Name | Description | CSS Property |
|---|---|---|
.fs-4xs | Extra extra extra extra small | font-size: var(--fs-4xs); |
.fs-3xs | Extra extra extra small | font-size: var(--fs-3xs); |
.fs-2xs | Extra extra small | font-size: var(--fs-2xs); |
.fs-xs | Extra small | font-size: var(--fs-xs); |
.fs-sm | Small | font-size: var(--fs-sm); |
.fs-md | Medium | font-size: var(--fs-md); |
.fs-lg | Large | font-size: var(--fs-lg); |
.fs-xl | Extra large | font-size: var(--fs-xl); |
.fs-2xl | 2× Extra large | font-size: var(--fs-2xl); |
.fs-3xl | 3× Extra large | font-size: var(--fs-3xl); |
.fs-4xl | 4× Extra large | font-size: var(--fs-4xl); |
.fs-5xl | 5× Extra large | font-size: var(--fs-5xl); |
.fs-6xl | 6× Extra large | font-size: var(--fs-6xl); |
.fs-7xl | 7× Extra large | font-size: var(--fs-7xl); |
.fs-8xl | 8× Extra large | font-size: var(--fs-8xl); |
.fs-9xl | 9× Extra large | font-size: var(--fs-9xl); |
Usage Example
Code
<p class="fs-sm">This is small text.</p>
<p class="fs-lg">This is large text.</p>
<p class="fs-3xl">This is 3× extra large text.</p>
<p class="fs-6xl">This is 6× extra large text.</p>Output
This is small text.
This is large text.
This is 3× extra large text.
This is 6× extra large text.
Lists
Here is an unordered list example:
- Item 1
- Item 2
- Item 3
Here is an ordered list example:
- Item 1
- Item 2
- Item 3
Custom list style:
- Disc
- Circle
- Square
- Decimal
- None
Lists #
These utility classes allow you to control the appearance and structure of lists (<ul> and <ol>) and their items.
Base Styling
| Selector | Description |
|---|---|
ul, ol | Applies padding and vertical margin to unordered and ordered lists. |
li | Applies vertical spacing between list items. |
List Style Type Classes
| Symbol | Class Name | Description | CSS Property |
|---|---|---|---|
| ● | list-disc | Bulleted list with filled circles | list-style-type: disc; |
| ○ | list-circle | Bulleted list with hollow circles | list-style-type: circle; |
| ■ | list-square | Bulleted list with squares | list-style-type: square; |
| 1. | list-decimal | Ordered list with numbers | list-style-type: decimal; |
| ა | list-georgian | Ordered list using Georgian numerals | list-style-type: georgian; |
| ೧ | list-kannada | Ordered list using Kannada numerals | list-style-type: kannada; |
list-none | Removes list bullets/numbers | list-style-type: none; |
Examples
- Circle item one
- Circle item two
<ul class="list-circle">
<li>Circle item one</li>
<li>Circle item two</li>
</ul>- Square item one
- Square item two
<ul class="list-square">
<li>Square item one</li>
<li>Square item two</li>
</ul>- Bullet removed
- No marker here
<ul class="list-none">
<li>Bullet removed</li>
<li>No marker here</li>
</ul>- Item 1
- Item 2
<ol class="mt-5">
<li>Item 1</li>
<li>Item 2</li>
</ol>Margins
Margins #
The margin utility classes allow you to quickly apply consistent spacing around elements using a standardized spacing scale. All classes are built to support responsive design with mobile-first breakpoints.
Examples
<div class="m-7">...</div>
<div class="mx-auto">...</div>
<div class="mx-5">...</div>
<div class="mt-0">...</div>
<div class="mr-sm-2">...</div>Basic Syntax
<div class="m-{value}">...</div>
<div class="mx-{value}">...</div>
<div class="mt-{value}">...</div>
<div class="mr[-breakpoint]-{value}">...</div>
<!-- and so on -->{value}:0to7orautoDirection prefixes:
m: all sidesmx: left & rightmy: top & bottommt: topmr: rightmb: bottomml: left
Spacing Scale
| Value | Description |
|---|---|
0 | 0 margin |
1 | var(--spacing-1) |
2 | var(--spacing-2) |
3 | var(--spacing-3) |
4 | var(--spacing-4) |
5 | var(--spacing-5) |
6 | var(--spacing-6) |
7 | var(--spacing-7) |
auto | auto margin (e.g. for centering) |
Responsive Variants
Use responsive prefixes to apply different margins at different breakpoints.
<div class="m-2 m-md-4 m-lg-6">...</div>| Prefix | Applies at screen width ≥ |
|---|---|
sm | Small |
md | Middle |
lg | Large |
xl | Extra large |
xxl | Extra extra large |
Class Reference
All Sides
.m-{0–7}
.m-autoHorizontal Margins
.mx-{0–7}
.mx-autoVertical Margins
.my-{0–7}
.my-autoIndividual Sides
.mt-{0–7} .mt-auto /* top */
.mr-{0–7} .mr-auto /* right */
.mb-{0–7} .mb-auto /* bottom */
.ml-{0–7} .ml-auto /* left */Responsive
For every class above, you can prefix it with a breakpoint:
.m-sm-{value}
.mx-md-{value}
.mt-lg-{value}
.ml-xl-autoExample
<div class="m-0">No margin</div>
<div class="mx-3 my-2">Custom horizontal and vertical margins</div>
<div class="mt-4 mb-1">Top and bottom margins</div>
<div class="m-auto">Centered</div>
<div class="m-2 m-md-5 m-xl-7">Responsive margin</div>Notes
- All utilities use
!importantto ensure high specificity. - These utilities are mobile-first; larger breakpoints override smaller ones.
Paddings
Paddings #
The padding utility classes allow you to quickly apply consistent inner spacing within elements using a standardized spacing scale. All classes support responsive design with mobile-first breakpoints.
Examples
<div class="p-7">...</div>
<div class="px-0">...</div>
<div class="py-5">...</div>
<div class="pt-1">...</div>
<div class="pl-lg-3">...</div>Basic Syntax
<div class="p-{value}">...</div>
<div class="px-{value}">...</div>
<div class="pt-{value}">...</div>
<div class="pl[-breakpoint]-{value}">...</div>
<!-- and so on -->{value}:0to7Direction prefixes:
p: all sidespx: left & rightpy: top & bottompt: toppr: rightpb: bottompl: left
Spacing Scale
| Value | Description |
|---|---|
0 | 0 padding |
1 | var(--spacing-1) |
2 | var(--spacing-2) |
3 | var(--spacing-3) |
4 | var(--spacing-4) |
5 | var(--spacing-5) |
6 | var(--spacing-6) |
7 | var(--spacing-7) |
Responsive Variants
Use responsive prefixes to apply different paddings at different breakpoints.
<div class="p-2 p-md-4 p-lg-6">...</div>| Prefix | Applies at screen width ≥ |
|---|---|
sm | Small |
md | Middle |
lg | Large |
xl | Extra large |
xxl | Extra extra large |
Class Reference
All Sides
.p-{0–7}Horizontal Paddings
.px-{0–7}Vertical Paddings
.py-{0–7}Individual Sides
.pt-{0–7} /* top */
.pr-{0–7} /* right */
.pb-{0–7} /* bottom */
.pl-{0–7} /* left */Responsive
All classes above support responsive breakpoints:
.p-sm-{value}
.px-md-{value}
.pt-lg-{value}
.pl-xl-{value}Example
<div class="p-0">No padding</div>
<div class="px-3 py-2">Custom horizontal and vertical paddings</div>
<div class="pt-4 pb-1">Top and bottom paddings</div>
<div class="p-2 p-md-5 p-xl-7">Responsive padding</div>Notes
- All utilities use
!importantto ensure high specificity. - These utilities are mobile-first; larger breakpoints override smaller ones.
Display
Display #
The display utilities allow you to control the display property of elements, with support for hover states and responsive breakpoints.
Basic Display
| Class | Description | CSS |
|---|---|---|
.d-none | Hides element | display: none !important; |
.d-block | Display as block | display: block !important; |
.d-inline | Display as inline | display: inline !important; |
.d-inline-block | Display as inline-block | display: inline-block !important; |
.d-flex | Display as flex | display: flex !important; |
.d-inline-flex | Display as inline-flex | display: inline-flex !important; |
.d-grid | Display as grid | display: grid !important; |
.d-table | Display as table | display: table !important; |
.d-table-row | Display as table-row | display: table-row !important; |
.d-table-cell | Display as table-cell | display: table-cell !important; |
Example
<div class="d-block bg-red">Block element (takes full width)</div>
<div class="d-inline-block bg-blue">Inline element (fits content)</div>Responsive Variants
Available breakpoints:
sm≥ 40remmd≥ 48remlg≥ 64remxl≥ 80remxxl≥ 96rem
Pattern: .d-[breakpoint]-[value]
| Example | Description |
|---|---|
.d-sm-none | Hide on small screens and up |
.d-md-flex | Flex on medium screens and up |
.d-lg-inline | Inline on large screens and up |
.d-xl-grid | Grid on extra-large screens and up |
.d-xxl-inline-block | Inline-block on extra-extra-large screens and up |
Examples
<div class="d-block d-md-none">Visible on <b>mobile</b></div>
<div class="d-none d-md-block">Visible on <b>large display</b></div>Hover Variants
Use hover: prefixed classes to change display on hover.
| Class Example | Description |
|---|---|
.hover\:d-none | Hides element on hover |
.hover\:d-block | Block on hover |
.hover\:d-flex | Flex on hover |
.hover\:d-grid | Grid on hover |
Example
<div class="d-inline-block hover:d-block">Hover me</div>Table
| # | Columns |
|---|---|
| 1 | John |
| 2 | Smith |
| # | Col 1 | Col 2 | Col 3 | Col 4 | Col 5 |
|---|---|---|---|---|---|
| 1 | This | is | a | large | content |
| 2 | This | is | a | red | background |
| # | Striped |
|---|---|
| 1 | Odd |
| 2 | Even |
| 3 | Odd |
| 4 | Even |
| 5 | Odd |
Table #
The table utilities provide a clean, accessible, and theme-aware style for tabular data. Tables are styled with spacing, consistent borders, and optional striping for better readability.
Example
| Item | Price |
|---|---|
| Apple | $1.00 |
| Banana | $0.50 |
<table class="table-striped">
<thead>
<tr>
<th>Item</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>$1.00</td>
</tr>
<tr>
<td>Banana</td>
<td>$0.50</td>
</tr>
</tbody>
</table>Striped Table Rows
| Class | Description |
|---|---|
.table-striped | Applies background stripes to every odd row in <tbody> using a light-dark() color mix |
Form
Form #
Form controls are used to style and standardize common form elements such as inputs, selects, and textareas. These utilities provide accessible, responsive, and theme-aware UI elements with support for validation, focus styling, and dark mode.
Basic Markup
<label for="example" class="form-label">Your name</label>
<input type="text" id="example" class="form-control" placeholder="Enter your name">Use .form-label for consistent label spacing, and .form-control for styled form elements.
Examples
Input Text
<label for="exampleFormControlInputText" class="form-label">Text input</label>
<input type="text" class="form-control" id="exampleFormControlInputText" placeholder="Default Input">Password
<label for="exampleFormControlPassword" class="form-label">Password</label>
<input type="password" class="form-control" id="exampleFormControlPassword" placeholder="••••••••" autocomplete="off">Text Area
<label for="exampleFormControlTextarea" class="form-label">Textarea</label>
<textarea type="password" class="form-control" id="exampleFormControlTextarea" rows="5" placeholder="Comments"></textarea>File Input
<div class="mb-4">
<label for="exampleFormFile" class="form-label">File input</label>
<input class="form-control" type="file" id="exampleFormFile">
</div>Select Dropdowns
<label for="exampleFormControlTextarea" class="form-label">Select</label>
<select class="form-control" aria-label="Default select example">
<option selected>Select</option>
<option value="1">First choice</option>
<option value="2">Second choice</option>
<option value="3">Third choice</option>
</select>Disabled State
Use the disabled attribute to visually indicate that a field is not editable. Disabled inputs appear dimmed and use alternate border and placeholder colors based on the theme.
<input class="form-control" placeholder="Disabled input" disabled>
<input class="form-control" type="file" disabled>Validation States
Add .valid or .invalid classes to style form fields based on validation.
<input class="form-control valid" placeholder="Valid input">
<input class="form-control invalid" placeholder="Invalid input">Size
You can change the font size of form controls to create smaller or larger inputs using text size utility classes like .fs-xs or .fs-2xl. These changes affect both the input’s text size and, indirectly, its overall visual footprint.
<input type="text" class="form-control fs-xs p-1" placeholder="Small input">
<input type="text" class="form-control fs-2xl" placeholder="Large input">Without Border
Add .border-0 to remove borders from form controls:
<input class="form-control border-0" disabled placeholder="Input without borders">Form Styling
Form Styling #
Disabled State
Use the disabled attribute to visually indicate that a field is not editable. Disabled inputs appear dimmed and use alternate border and placeholder colors based on the theme.
<input class="form-control" placeholder="Disabled input" disabled>
<input class="form-control" type="file" disabled>Size
You can change the font size of form controls to create smaller or larger inputs using text size utility classes like .fs-xs or .fs-2xl. These changes affect both the input’s text size and, indirectly, its overall visual footprint.
<input type="text" class="form-control fs-xs p-1" placeholder="Small input">
<input type="text" class="form-control fs-2xl" placeholder="Large input">Validation States
Add .valid or .invalid classes to style form fields based on validation.
<input class="form-control valid" placeholder="Valid input">
<input class="form-control invalid" placeholder="Invalid input">Rounded Pill
To give inputs a pill-shaped appearance, add the .rounded-pill class. This applies a large border-radius to create fully rounded edges.
<input class="form-control rounded-pill" placeholder="Rounded Pill Input">Without Border
Use the .border-0 utility to remove borders from form controls when a minimal or embedded style is desired.
<input class="form-control border-0" disabled placeholder="Input without borders">Input Groups
Input Group #
Input groups combine text inputs with icons, buttons, or labels for enhanced UI patterns such as search bars, usernames, or formatted inputs.
Wrap the content in a .input-group container to align form controls and addons horizontally.
Basic Input Group
Use .input-group-text to prepend or append static text or symbols.
<div class="input-group">
<span class="input-group-text">@</span>
<input type="text" class="form-control" placeholder="Username">
</div>Search Bar with Buttons
Input groups can include buttons for actions like search or clear. Combine buttons and inputs inside a .input-group for layout.
<div class="input-group rounded-pill">
<button class="btn-grey px-3">
<img src="magnifying-glass.png">
</button>
<input type="text" class="form-control" placeholder="Search">
<button class="btn-grey px-3">
<img src="xmark.png">
</button>
</div>Custom Themed Input Group
Use utility classes for dynamic theming. This example demonstrates:
- Pill shape via
.rounded-pill - Color theming using
light:anddark:prefixes - Transparent backgrounds and interactive styling on buttons
<div
class="input-group mb-4 rounded-pill dark:border-purple-700 light:border-green-300 dark:color-white-900 light:color-black-100">
<button class="btn dark:bg-purple-700 dark:hover:bg-purple-500 light:bg-green-300 light:hover:bg-green-500 px-3">
<img src="magnifying-glass.png">
</button>
<input type="text" class="form-control bg-cyan-lighter-5" placeholder="Custom">
<button class="btn dark:bg-purple-700 dark:hover:bg-purple-500 light:bg-green-300 light:hover:bg-green-500 px-3">
<img src="xmark.png">
</button>
</div>💡 Use .rounded-pill for a softer, modern appearance. Customize further with background, border, and icon classes to match your theme.
Border Colors
Border Colors #
The border color utilities allow you to apply consistent and theme-aware border colors using semantic class names. These utilities are compatible with both light and dark mode out of the box.
Syntax
[color-scheme]:[state]:border-[name]-[shade]border-[name]– Applies a base color (e.g.,border-red,border-blue)border-[name]-[shade]– Uses a specific shade of the color (e.g.,border-blue-200)[color-scheme]– Applies the color inlight:ordark:mode (e.g.,dark:border-green)[state]– Applies the color on specific states (e.g.,hover:border-purple-600)
The defautl border width is 0. To display the border, you have to specify the border width (border, border-1, border-2 etc.).
Example
<div class="border border-red">border-red</div><div class="border border-red-800">border-red-800</div><div class="border light:border-green dark:border-orange">light:border-green dark:border-orange</div><div class="border hover:border-yellow">hover:border-yellow</div><div class="border light:hover:border-orange-300 dark:hover:border-purple-300">dark:hover:border-purple-300</div>Border Color list
| Color | CSS Class | Output |
|---|---|---|
| Orange | border-orange | Border Color Example |
| Yellow | border-yellow | Border Color Example |
| Red | border-red | Border Color Example |
| Pink | border-pink | Border Color Example |
| Purple | border-purple | Border Color Example |
| Blue | border-blue | Border Color Example |
| Cyan | border-cyan | Border Color Example |
| Green | border-green | Border Color Example |
| White | border-white | Border Color Example |
| Black | border-black | Border Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Red Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | border-red-50 | 50 |
| 100 | border-red-100 | 100 |
| 200 | border-red-200 | 200 |
| 300 | border-red-300 | 300 |
| 400 | border-red-400 | 400 |
| 500 | border-red-500 | 500 |
| 600 | border-red-600 | 600 |
| 700 | border-red-700 | 700 |
| 800 | border-red-800 | 800 |
| 900 | border-red-900 | 900 |
| 950 | border-red-950 | 950 |
Border Width
Border Width #
Use the .border-* utility classes to control the border width of elements. These classes provide consistent spacing and visual weight, ranging from no border to thick borders.
Class Reference
| Class | CSS Output | Description |
|---|---|---|
border-0 | border-width: 0 | No border |
border | border-width: 1px | Default 1px border |
border-1 | border-width: 1px | Same as .border |
border-2 | border-width: 2px | Medium thickness |
border-3 | border-width: 3px | Thick border |
border-4 | border-width: 4px | Extra thick |
border-5 | border-width: 5px | Maximum thickness |
All classes include !important to ensure override priority.
Examples
<!-- No border -->
<div class="border-0">No border</div><!-- Default border -->
<div class="border">1px border</div><!-- Thick border -->
<div class="border-4">Thick border</div>Basic Syntax
<div class="border-{n}">...</div>{n}ranges from0to5borderis equivalent toborder-1
Notes
- These utilities apply to all sides of the element.
- You can combine with
border-colorandborder-styleutilities for full customization.
Border Side
Border Side #
These classes allow you to individually control the border width on each side of an element (top, right, bottom, left), as well as horizontal (x) and vertical (y) axes. Useful for selectively applying border thickness while maintaining full design flexibility.
Syntax
<div class="border-top-3">...</div>
<div class="border-left">...</div>
<div class="border-x-0">...</div>Available Values
0— Removes the border1(or none) — 1px border2to5— Pixel-based border thickness
.border-[side] is a shorthand for .border-[side]-1.
Example
<!-- Only top border -->
<div class="border-top-3 border-solid">Top border 3px</div><!-- Horizontal borders (left & right) -->
<div class="border-x-2 border-dashed">X-axis border</div><!-- Top and right border -->
<div class="border-top-1 border-right-1">All borders except bottom</div><!-- No bottom border -->
<div class="border border-bottom-0">All borders except bottom</div>Class Reference
Top Border
| Class | Description |
|---|---|
.border-top-0 | No top border |
.border-top | 1px solid top border |
.border-top-2 | 2px solid top border |
.border-top-3 | 3px solid top border |
.border-top-4 | 4px solid top border |
.border-top-5 | 5px solid top border |
Right Border
| Class | Description |
|---|---|
.border-right-0 | No right border |
.border-right | 1px solid right border |
.border-right-2 | 2px solid right border |
.border-right-3 | 3px solid right border |
.border-right-4 | 4px solid right border |
.border-right-5 | 5px solid right border |
Bottom Border
| Class | Description |
|---|---|
.border-bottom-0 | No bottom border |
.border-bottom | 1px solid bottom border |
.border-bottom-2 | 2px solid bottom border |
.border-bottom-3 | 3px solid bottom border |
.border-bottom-4 | 4px solid bottom border |
.border-bottom-5 | 5px solid bottom border |
Left Border
| Class | Description |
|---|---|
.border-left-0 | No left border |
.border-left | 1px solid left border |
.border-left-2 | 2px solid left border |
.border-left-3 | 3px solid left border |
.border-left-4 | 4px solid left border |
.border-left-5 | 5px solid left border |
Horizontal Borders (X-Axis)
| Class | Description |
|---|---|
.border-x-0 | No horizontal borders (left & right) |
.border-x | 1px solid on left and right sides |
.border-x-2 | 2px solid horizontal borders |
.border-x-3 | 3px solid horizontal borders |
.border-x-4 | 4px solid horizontal borders |
.border-x-5 | 5px solid horizontal borders |
Vertical Borders (Y-Axis)
| Class | Description |
|---|---|
.border-y-0 | No vertical borders (top & bottom) |
.border-y | 1px solid on top and bottom sides |
.border-y-2 | 2px solid vertical borders |
.border-y-3 | 3px solid vertical borders |
.border-y-4 | 4px solid vertical borders |
.border-y-5 | 5px solid vertical borders |
Border Styles
Border Styles #
Use .border-* style classes to control the style of the border lines, such as solid, dashed, dotted, or double.
Class Reference
| Class | CSS Output | Description |
|---|---|---|
border-solid | border-style: solid | A solid, continuous line |
border-dashed | border-style: dashed | A series of dashes |
border-dotted | border-style: dotted | A series of dots |
border-double | border-style: double | Two solid lines (double) |
Examples
<div class="border border-solid">Solid Border</div><div class="border-2 border-dashed">Dashed Border</div><div class="border-1 border-dotted">Dotted Border</div><div class="border-3 border-double">Double Border</div>Notes
These classes only define the style, not the width or color. Use them with:
border,border-2, etc. for widthborder-red,light:border-grey-100, etc. for color
Rounded
Rounded #
Use the .rounded-* utility classes to control the border radius (rounded corners) of elements. These classes allow consistent spacing-based rounding or special shapes like pill borders.
Syntax
.rounded-[value]Where [value] is a number from 0 to 7, or pill.
Available Classes
| Class | Description |
|---|---|
rounded-0 | No border radius (square corners) |
rounded | Alias for .rounded-1 |
rounded-1 | Border radius of size 1 |
rounded-2 | Border radius of size 2 |
rounded-3 | Border radius of size 3 |
rounded-4 | Border radius of size 4 |
rounded-5 | Border radius of size 5 |
rounded-6 | Border radius of size 6 |
rounded-7 | Border radius of size 7 |
rounded-pill | Fully rounded (pill-shaped) using 50vh radius |
Examples
<div class="rounded-0">No rounding</div><div class="rounded-3">Moderate rounding</div><div class="rounded-pill">Pill-shaped element</div>Card with Headers
Another Headers
Card #
Cards are flexible content containers that can include headers, bodies, footers, and even images. Use them to group related information in a visually distinct block.
Basic Structure
<div class="card">
<div class="header">...</div>
<div class="body">...</div>
<div class="footer">...</div>
</div>.card– the container for the card component..header– optional section used for titles, images, or actions..body– main content area of the card..footer– optional section for actions or metadata.
Card with Multiple Headers
You can insert multiple headers within a card for complex layouts.
Preview
Card with Headers
Another Headers
<div id="card" class="card">
<div class="header"><h2>Card with Headers</h2></div>
<div class="body">Example of card with several <b>headers</b>.</div>
<div class="header"><h2>Another Headers</h2></div>
<div class="body">You can insert multiple <b>headers</b> in a single card.</div>
<div class="footer align-right">
<button class="btn-blue" data-open-modal="documentation-modal" data-documentation="card">Do something</button>
</div>
</div>- Headers can appear at multiple positions inside the card.
- Alternate headers and bodies to separate content logically.
- Use
.align-rightin the footer to align buttons to the right.
Card with Image Header
Headers can also be replaced with an image for a more visual layout.
Preview

Card Title
Example of a card with an image for blog posts, user cards, and many more.
<div class="card">
<img class="header" src="/images/card-header.jpg">
<div class="body">
<h3>Card Title</h3>
<p>Example of a card with an image for blog posts, user cards, and many more.</p>
</div>
<div class="footer align-right">
<button class="btn-blue">Do something</button>
</div>
</div>- An
<img>element with the.headerclass is used to display an image at the top. - Ideal for use cases like blog cards, product cards, or profile previews.

Card with Image
Example of a card with an image for blog posts, user cards, and many more.
Card with Image #
Cards are flexible content containers that can include headers, bodies, footers, and even images. Use them to group related information in a visually distinct block.
Basic Structure
<div class="card">
<div class="header">...</div>
<div class="body">...</div>
<div class="footer">...</div>
</div>.card– the container for the card component..header– optional section used for titles, images, or actions..body– main content area of the card..footer– optional section for actions or metadata.
Card with Image Header
Headers can also be replaced with an image for a more visual layout.
Preview

Card Title
Example of a card with an image for blog posts, user cards, and many more.
<div class="card">
<img class="header" src="/images/card-header.jpg">
<div class="body">
<h3>Card Title</h3>
<p>Example of a card with an image for blog posts, user cards, and many more.</p>
</div>
<div class="footer align-right">
<button class="btn-blue">Do something</button>
</div>
</div>- An
<img>element with the.headerclass is used to display an image at the top. - Ideal for use cases like blog cards, product cards, or profile previews.
Modal Dialogs
Modal Dialogs #
The modal component is a dialog box that can be shown or hidden dynamically. It uses the native HTML <dialog> element enhanced with utility classes and data attributes for consistent behavior and styling.
⚠️ Beautiful CSS provides only CSS styles. You can write your own JavaScript to manage modal interactions or use our dedicated utility library:
HTML Structure
<dialog class="modal">
<div class="modal-content">
<header></header>
<div></div>
<footer></footer>
</div>
</dialog>The modal content is structured into three elements:
<header>: Contains the modal title and close button.<div>: Main content area of the modal.<footer>: Footer of the modal
class="modal" Applies base styling for visibility, animation, and positioning.
Examples
Basic Example
This example is a starting point for building modals.
<dialog id="my-modal" class="modal" data-scroll-to="top" data-close-modal>
<div class="modal-content">
<header>
<h2 class="mt-0">Title</h2>
<button type="button" class="btn-close" data-close-modal aria-label="Close"></button>
</header>
<div>
Here is the main content
</div>
<footer class="align-right">
<button class="btn-blue" data-close-modal>Close</button>
</footer>
</div>
</dialog>Modal Without Animation
To disable the modal’s opening and closing animations, add the .no-animation class to the <dialog> element:
<dialog id="my-modal" class="modal no-animation" data-close-modal>
<div class="modal-content">
<header></header>
<div></div>
<footer></footer>
</div>
</dialog>Without Backdrop Blur
To disable the blur effect on the background when the modal is open, add the .no-blur class to the <dialog> element:
<dialog id="my-modal" class="modal no-blur" data-close-modal>
<div class="modal-content">
<header></header>
<div></div>
<footer></footer>
</div>
</dialog>Modal Width
The modal tries to respect the preferred width of the .modal-content element, as long as it fits within the viewport.
<div class="modal-content w-500px">This example shows a modal that spans the entire width of the viewport, while still respecting a maximum width to avoid overly wide content on large screens.
<dialog id="my-modal" class="modal" data-close-modal>
<div class="modal-content w-100vw">
<header></header>
<div></div>
<footer></footer>
</div>
</dialog>You can repla
Centered Modal
This example demonstrates a centered modal:
<dialog id="my-modal" class="modal" data-close-modal>
<div class="modal-content mx-auto">
<header></header>
<div></div>
<footer></footer>
</div>
</dialog>Attributes
The following attributes are intended to work with our dedicated library (npm, github), otherwise developer have to write its own JavaScript logiccode to manage theses options :
id="my-modal"– Unique identifier for targeting the modal via JavaScript.data-scroll-to="top"(Optional) – When added to<dialog>, it automatically scrolls the modal content to the top when opened.data-close-modal– Can be added to any element inside the modal to close it when clicked (e.g., close button, background click). When added to the<dialog>, it closes the modal when the user clicks outside the modal.
Opening Button
Use data-open-modal on a button to open a specific modal:
<button class="btn-green" data-open-modal="my-modal">Open Modal</button>Closing Cross
The following code creates a close button styled as a cross:
<button type="button" class="btn-close" data-close-modal aria-label="Close"></button>.btn-close: – Overrides the default button style to appear as a close icon (“X”).
Use [data-close-modal] on buttons or overlays to allow declarative closing via JavaScript event delegation.
Classes
The following optional classes can be added to the <dialog> element to control modal behavior:
.no-animation: prevent animation when opening / closing the modal.no-blur: prevent the background blur effect when the modal is opened.my-auto: center the modal verticaly in the viewport
Add w-100vw and w-max-100 to .modal-content to create a full-width modal.
Basic JavaScript Usage
Since the modals are based on the HTML dialog element, you can control them with plain JavaScript:
// Show the modal programmatically
document.getElementById('my-modal').showModal();// Close the modal manually
document.getElementById('my-modal').close();Note: Beautiful CSS includes open/close animations that may need to be accounted for when managing visibility manually.
Horizontal Grid
Horizontal Grid #
Use the horizontal grid system to build flexible, responsive layouts with a set number of columns. These utilities allow you to quickly create multi-column layouts and control how wide elements span across the grid.
Grid Columns
Use .h-grid-N to define a grid with a fixed number of columns.
| Class | Description |
|---|---|
.h-grid | Creates an auto-fitting column grid |
.h-grid-2 | Creates a 2-column grid |
.h-grid-3 | Creates a 3-column grid |
.h-grid-4 | Creates a 4-column grid |
.h-grid-5 | Creates a 5-column grid |
.h-grid-6 | Creates a 6-column grid |
.h-grid-7 | Creates a 7-column grid |
.h-grid-8 | Creates a 8-column grid |
.h-grid-9 | Creates a 9-column grid |
.h-grid-10 | Creates a 10-column grid |
.h-grid-11 | Creates a 11-column grid |
.h-grid-12 | Creates a 12-column grid |
Examples
<div class="h-grid gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
<div>04</div>
</div><div class="h-grid-3 gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
<div>04</div>
<div>05</div>
<div>06</div>
<div>07</div>
</div>Column Spanning
Use .h-span-X on grid items to make them span multiple columns.
| Class | Description |
|---|---|
.h-span-2 | Span 2 columns |
.h-span-3 | Span 3 columns |
.h-span-4 | Span 4 columns |
.h-span-5 | Span 5 columns |
.h-span-6 | Span 6 columns |
Example
<div
class="h-grid-6 gap-3">
<div>01</div>
<div class="h-span-2">02</div>
<div>03</div>
<div>04</div>
</div>This creates a 6-column grid where the second item spans 2 columns.
Row Spanning
Use .v-span-X on grid items to make them span multiple rows.
| Class | Description |
|---|---|
.v-span-2 | Span 2 rows |
.v-span-3 | Span 3 rows |
.v-span-4 | Span 4 rows |
.v-span-5 | Span 5 rows |
.v-span-6 | Span 6 rows |
Example
<div class="h-grid-3 gap-3">
<div class="v-span-2">01</div>
<div>02</div>
<div>03</div>
<div>04</div>
</div>This creates a 3-column grid where the first item spans 2 rows.
Gap Utilities
The .gap-* utility classes let you quickly control the spacing between flex or grid items using a consistent spacing scale.
They apply the native CSS gap property, which works with both flex and grid containers.
Basic Syntax
<div class="gap-{n}">...</div>{n}is a number between0and7
Vertical Grid
Vertical Grid #
Use the vertical grid system to build flexible, responsive layouts with a set number of rows. These utilities allow you to quickly create multi-rows layouts and control how wide elements span across the grid.
Grid Rows
Use .v-grid-N to define a grid with a fixed number of rows.
| Class | Description |
|---|---|
.v-grid | Creates an auto-fitting row grid |
.v-grid-2 | Creates a 2-row grid |
.v-grid-3 | Creates a 3-row grid |
.v-grid-4 | Creates a 4-row grid |
.v-grid-5 | Creates a 5-row grid |
.v-grid-6 | Creates a 6-row grid |
.v-grid-7 | Creates a 7-row grid |
.v-grid-8 | Creates a 8-row grid |
.v-grid-9 | Creates a 9-row grid |
.v-grid-10 | Creates a 10-row grid |
.v-grid-11 | Creates a 11-row grid |
.v-grid-12 | Creates a 12-row grid |
Examples
<div class="v-grid gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
<div>04</div>
</div><div class="v-grid-3 gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
<div>04</div>
<div>05</div>
<div>06</div>
<div>07</div>
</div>Row Spanning
Use .v-span-X on grid items to make them span multiple rows.
| Class | Description |
|---|---|
.v-span-2 | Span 2 rows |
.v-span-3 | Span 3 rows |
.v-span-4 | Span 4 rows |
.v-span-5 | Span 5 rows |
.v-span-6 | Span 6 rows |
Example
<div class="v-grid-3 gap-3">
<div class="v-span-2">01</div>
<div>02</div>
<div>03</div>
<div>04</div>
</div>This creates a 3-row grid where the first item spans 2 rows.
Column Spanning
Use .h-span-X on grid items to make them span multiple columns.
| Class | Description |
|---|---|
.h-span-2 | Span 2 columns |
.h-span-3 | Span 3 columns |
.h-span-4 | Span 4 columns |
.h-span-5 | Span 5 columns |
.h-span-6 | Span 6 columns |
Example
<div
class="v-grid-6 gap-3">
<div>01</div>
<div class="h-span-2">02</div>
<div>03</div>
<div>04</div>
</div>This creates a 6-row grid where the second item spans 2 columns.
Gap Utilities
The .gap-* utility classes let you quickly control the spacing between flex or grid items using a consistent spacing scale.
They apply the native CSS gap property, which works with both flex and grid containers.
Basic Syntax
<div class="gap-{n}">...</div>{n}is a number between0and7
Horizontal Flex
Horizontal Flex #
These utility classes help you control horizontal layout (flex-direction: row) and horizontal alignment (justify-content) using simple and expressive class names.
They use display: flex and align items along the main (horizontal) axis.
Class Reference
| Class | CSS Output | Description |
|---|---|---|
.h-flex-start | justify-content: start | Align items to the left |
.h-flex-end | justify-content: end | Align items to the right |
.h-flex-center | justify-content: center | Center items horizontally |
.h-flex-between | justify-content: space-between | Distribute items with space between |
.h-flex-around | justify-content: space-around | Equal space around each item |
.h-flex-evenly | justify-content: space-evenly | Equal space between and around |
h-flex is a shorthand for .v-flex-start.
Basic Syntax
<div class="h-flex-{alignment}">...</div>Where {alignment} is one of: start, end, center, between, around, evenly.
Examples
<div class="h-flex-start gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="h-flex-end gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="h-flex-center gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="h-flex-between gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="h-flex-around gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="h-flex-evenly gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div>Flex Grow Utilities
Control how flexible a flex item should grow relative to the rest of the items with .grow-{n} classes.
Basic Syntax
<div class="grow-{n}">...</div>{n}is a number between0and7- Maps to
flex-grow: n
Example
<div class="h-flex-between gap-3">
<div>01</div>
<div class="grow-1">02</div>
<div>03</div>
</div>Gap Utilities
The .gap-* utility classes let you quickly control the spacing between flex or grid items using a consistent spacing scale.
They apply the native CSS gap property, which works with both flex and grid containers.
Basic Syntax
<div class="gap-{n}">...</div>{n}is a number between0and7
Align Self Utilities
Use the .self-* utility classes to control the alignment of individual flex items along the cross axis (usually vertical). These classes apply the align-self CSS property, allowing overrides of the container’s align-items value on a per-element basis.
Syntax
.self-[value]Where [value] corresponds to a valid align-self keyword.
Available Classes
| Class | CSS Value | Description |
|---|---|---|
.self-auto | auto | Uses the element’s default alignment |
.self-start | flex-start | Aligns the item at the start of the cross axis |
.self-end | flex-end | Aligns the item at the end of the cross axis |
.self-end-safe | safe flex-end | Aligns to the end safely without risking overflow |
.self-center | center | Centers the item along the cross axis |
.self-center-safe | safe center | Centers safely without overflow risk |
.self-stretch | stretch | Stretches the item to fill the container |
.self-baseline | baseline | Aligns the item to the container’s baseline |
.self-baseline-last | last baseline | Aligns to the last baseline (in multi-line flex) |
Example
<div class="h-flex h-128px gap-3">
<div class="self-start">Start</div>
<div class="self-center">Center</div>
<div class="self-stretch">Stretch</div>
<div class="self-end">End</div>
</div>Vertical Flex
Vertical Flex #
These utility classes help you control vertical layout (column-based flex-direction) and vertical alignment (justify-content) using concise and semantic class names.
Class Reference
| Class | CSS Output | Description |
|---|---|---|
.v-flex-start | justify-content: start | Align items to the top |
.v-flex-end | justify-content: end | Align items to the bottom |
.v-flex-center | justify-content: center | Center items vertically |
.v-flex-between | justify-content: space-between | Equal space between items |
.v-flex-around | justify-content: space-around | Equal space around items |
.v-flex-evenly | justify-content: space-evenly | Equal space between and around |
v-flex is a shorthand for .v-flex-start.
Basic Syntax
<div class="v-flex-{alignment}">...</div>Where {alignment} is one of: start, end, center, between, around, evenly.
Examples
<div class="v-flex-start gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="v-flex-end gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="v-flex-center gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="v-flex-between gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="v-flex-around gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div><div class="v-flex-evenly gap-3">
<div>01</div>
<div>02</div>
<div>03</div>
</div>Flex Grow Utilities
Control how flexible a flex item should grow relative to the rest of the items with .grow-{n} classes.
Basic Syntax
<div class="grow-{n}">...</div>{n}is a number between0and7- Maps to
flex-grow: n
Example
<div class="v-flex-between gap-3">
<div>01</div>
<div class="grow-1">02</div>
<div>03</div>
</div>Gap Utilities
The .gap-* utility classes let you quickly control the spacing between flex or grid items using a consistent spacing scale.
They apply the native CSS gap property, which works with both flex and grid containers.
Basic Syntax
<div class="gap-{n}">...</div>{n}is a number between0and7
Align Self Utilities
Use the .self-* utility classes to control the alignment of individual flex items along the cross axis (usually vertical). These classes apply the align-self CSS property, allowing overrides of the container’s align-items value on a per-element basis.
Syntax
.self-[value]Where [value] corresponds to a valid align-self keyword.
Available Classes
| Class | CSS Value | Description |
|---|---|---|
.self-auto | auto | Uses the element’s default alignment |
.self-start | flex-start | Aligns the item at the start of the cross axis |
.self-end | flex-end | Aligns the item at the end of the cross axis |
.self-end-safe | safe flex-end | Aligns to the end safely without risking overflow |
.self-center | center | Centers the item along the cross axis |
.self-center-safe | safe center | Centers safely without overflow risk |
.self-stretch | stretch | Stretches the item to fill the container |
.self-baseline | baseline | Aligns the item to the container’s baseline |
.self-baseline-last | last baseline | Aligns to the last baseline (in multi-line flex) |
Example
<div class="v-flex w-128px gap-3">
<div class="self-start">Start</div>
<div class="self-center">Center</div>
<div class="self-stretch">Stretch</div>
<div class="self-end">End</div>
</div>Flex Wrap
Flex Wrap #
The flex-wrap utility controls whether flex items are forced onto a single line or can wrap onto multiple lines, and if wrapping occurs, in which direction.
By default, flex items will not wrap and try to fit in a single row.
Classes
| Class | Description |
|---|---|
.flex-nowrap | Prevents items from wrapping. All flex items stay in a single line. |
.flex-wrap | Allows items to wrap onto multiple lines, from top to bottom. |
.flex-wrap-reverse | Allows items to wrap onto multiple lines, but in reverse (bottom to top). |
Examples
No Wrap (Default)
<div class="h-flex-start flex-nowrap gap-4">
<div class="bg-red">01</div>
<div class="bg-red">02</div>
<div class="bg-red">03</div>
</div>Items stay in a single row, overflowing if there is not enough space.
Wrap
<div class="h-flex-start flex-wrap gap-4">
<div class="bg-red">01</div>
<div class="bg-red">02</div>
<div class="bg-red">03</div>
</div>Items will wrap onto the next line when there isn’t enough space.
Wrap Reverse
<div class="h-flex-start flex-wrap-reverse gap-4">
<div class="bg-red">01</div>
<div class="bg-red">02</div>
<div class="bg-red">03</div>
</div>Items wrap onto multiple lines but in reverse order (from bottom to top).
Object Fit





Object Fit #
Control how replaced elements like <img> or <video> should be resized to fit their container using the object-fit property.
Syntax
.object-[fit]Where [fit] can be:
| Class | Alternative | Description |
|---|---|---|
object-contain | fit-contain | Scale the content to maintain its aspect ratio while fitting within the container. |
object-cover | fit-cover | Scale the content to maintain its aspect ratio while filling the container. May crop content. |
object-fill | fit-fill | Stretch the content to fill the container. Aspect ratio is not preserved. |
object-none | fit-none | Do not resize the content. It will retain its original size. |
object-scale-down | fit-scale-down | Scale down the content to the smallest size between none or contain. |
Use these classes to manage how media behaves inside fixed-size containers.
The .fit-* classes are shorthand aliases for their corresponding .object-* utilities, providing an alternate, shorter syntax for controlling the object-fit behavior of media elements.
Examples
Fit inside the container
Use object-contain to make the content fit entirely within the container without clipping. The aspect ratio is preserved, and empty space may appear.

<img src="image.jpg" class="h-100 w-100 object-contain">Cover the container
Use object-cover to fill the container while preserving the aspect ratio. The image will be clipped if necessary.

<img src="image.jpg" class="h-100 w-100 object-cover">Stretch to fill
Use object-fill to make the content fill the container regardless of its aspect ratio. This may distort the content.

<img src="image.jpg" class="h-100 w-100 object-fill">Scale down if needed
Use object-scale-down to display the content at its original size unless it’s too large—then it scales down to fit the container.

<img src="image.jpg" class="h-100 w-100 object-scale-down">Use original size only
Use object-none to keep the original size of the content, ignoring the container dimensions. It may overflow if the content is larger.

<img src="image.jpg" class="h-100 w-100 object-none">Loaders spinners
Loaders #
The framework provides different loader styles, each animated with CSS. They can be customized with size, color, scaling, and animation speed utilities.
Circular Spinner
.loader creates a circular spinner that rotates a bordered ring.
- Use
.color-*to set the primary stroke color. - Use
.border-color-*to set the background stroke color.
Examples
<span class="loader"></span>
<span class="loader color-orange"></span>
<span class="loader color-red border-pink"></span>
<span class="loader color-green border-transparent"></span>
<span class="loader color-transparent border-cyan"></span>Clipped Border Spinner
.loader-clip creates a clipped border spinner that animates as a rotating arc.
- Use
.color-*to change the spinner color.
Examples
<span class="loader-clip"></span>
<span class="loader-clip color-red"></span>
<span class="loader-clip color-green animation-duration-2000"></span>Pulsing Loader
.loader-grow creates a pulsing loader that expands and fades in/out.
- Use
.bg-*to set the fill color.
Examples
<span class="loader-grow"></span>
<span class="loader-grow color-red"></span>
<span class="loader-grow color-green animation-duration-2000"></span>Fading Dots
.loader-dots-fade creates three fading dots that appear and disappear sequentially.
- Use
.color-*to change the dots color.
Examples
<span class="loader-dots-fade"></span>
<span class="loader-dots-fade color-red"></span>
<span class="loader-dots-fade color-green animation-duration-2000"></span>Rotating Dots
.loader-dots-spin creates three rotating dots arranged in a circular path.
- Use
.color-*to change the dots color.
Examples
<span class="loader-dots-spin"></span>
<span class="loader-dots-spin color-red"></span>
<span class="loader-dots-spin color-green animation-duration-2000"></span>Comet-Style Loader
.comet-style creates a comet-style loader where dots rotate with a trailing fade effect.
- Use
.color-*to change the dots color.
Examples
<span class="loader-comet"></span>
<span class="loader-comet color-red"></span>
<span class="loader-comet color-green animation-duration-2000"></span>Sizing
There are several ways to size the loaders. The most flexible option is to use the utility class .scale-[ratio].
<span class="loader scale-50"></span>
<span class="loader-clip scale-75"></span>
<span class="loader-grow"></span>
<span class="loader-dots-fade scale-110"></span>
<span class="loader-dots-spin scale-120"></span>
<span class="loader-comet scale-150"></span>For .loader-dots-fade, .loader-dots-spin and .loader-comet, dots are generated with box-shadow.
- The dot size depends on the element’s height.
- The loader’s overall size is relative to the element’s font size.
You can adjust both independently to fine-tune the effect:
<span class="loader-dots-fade fs-xs"></span>
<span class="loader-dots-spin h-16px"></span>
<span class="loader-comet fs-5xl h-4px"></span>Scale
Scale #
The scale utility classes visually resize elements using transform: scale().
Syntax
[state]:scale-[ratio]- [state] – (optional)
hoverorfocus. - [ratio] – The desired scale percentage (e.g.
105→ 105% →scale(1.05))
Usage Examples
<!-- Static scale -->
<div class="scale-90">Scaled to 90%</div><!-- On hover -->
<div class="hover:scale-110">Scales to 110% on hover</div><!-- On focus -->
<input type="text" class="form-control focus-scale-105" />Available Classes
| Class Name | CSS Equivalent | Description |
|---|---|---|
scale-50 | transform: scale(0.5) | Shrinks element to 50% size |
scale-80 | transform: scale(0.8) | Shrinks element to 80% size |
scale-90 | transform: scale(0.9) | Shrinks element to 90% size |
scale-95 | transform: scale(0.95) | Slightly smaller (95%) |
scale-98 | transform: scale(0.98) | Near full size (98%) |
scale-100 | transform: scale(1) | Default size (100%) |
scale-102 | transform: scale(1.02) | Slightly larger (102%) |
scale-105 | transform: scale(1.05) | Slightly larger (105%) |
scale-110 | transform: scale(1.1) | Enlarges to 110% |
scale-120 | transform: scale(1.2) | Enlarges to 120% |
scale-150 | transform: scale(1.5) | Doubles element size by 50% |
Transition Utilities
Use transition utilities to animate property changes smoothly, especially useful with scaling and transform effects.
Duration Classes
| Class Name | CSS Equivalent | Description |
|---|---|---|
.duration-150 | transition-duration: 150ms | Short transitions |
.duration-200 | transition-duration: 200ms | Common for button hovers |
.duration-250 | transition-duration: 250ms | Moderate timing |
.duration-300 | transition-duration: 300ms | Balanced for most UI interactions |
.duration-500 | transition-duration: 500ms | Slow transition for dramatic effect |
.duration-700 | transition-duration: 700ms | Very slow transition |
Transition Properties
| Class Name | CSS Equivalent | Description |
|---|---|---|
.transition | transition-property: all; | Enables transitions on all properties using a smooth easing function |
.transition-transform | transition-property: transform; | Applies smooth transitions only to transform |
Example with Transitions
<div class="btn hover:scale-120 transition-transform duration-300">Hover me</div>Notes
- Combine
.transition-transformwith.duration-*for smooth scaling. - Use
.transitionif multiple CSS properties (e.g., color, box-shadow) should animate together. - Ensure elements with transforms do not interfere with layout (e.g., overlapping or scaling out of bounds).
Rotation

Rotation #
Control the rotation of elements using the .rotate-* classes. Useful for rotating icons, buttons, and other UI elements.
Syntax
.rotate-[angle]Optional variants:
hover:rotate-[angle]: Applies the rotation on hover.transition-rotate: Enables smooth rotation transitions.duration-[time]: Defines transition duration.
Examples
<div class="rotate-180">Upside down</div><div class="rotate-90">Hover me</div>This rotates the icon by 90° when hovered, with a smooth 300ms transition.
Class Reference
Static Rotation
| Class | Description |
|---|---|
rotate-0 | No rotation |
rotate-45 | Rotates element 45° |
rotate-90 | Rotates element 90° |
rotate-135 | Rotates element 135° |
rotate-180 | Rotates element 180° |
rotate-225 | Rotates element 225° |
rotate-270 | Rotates element 270° |
rotate-315 | Rotates element 315° |
Hover Rotation
| Class | Description |
|---|---|
hover:rotate-0 | No rotation on hover |
hover:rotate-45 | Rotates element 45° on hover |
hover:rotate-90 | Rotates element 90° on hover |
hover:rotate-135 | Rotates element 135° on hover |
hover:rotate-180 | Rotates element 180° on hover |
hover:rotate-225 | Rotates element 225° on hover |
hover:rotate-270 | Rotates element 270° on hover |
hover:rotate-315 | Rotates element 315° on hover |
Transition Utilities
Use transition utilities to animate property changes smoothly, especially useful with scaling and transform effects.
Duration Classes
| Class Name | CSS Equivalent | Description |
|---|---|---|
.duration-150 | transition-duration: 150ms | Short transitions |
.duration-200 | transition-duration: 200ms | Common for button hovers |
.duration-250 | transition-duration: 250ms | Moderate timing |
.duration-300 | transition-duration: 300ms | Balanced for most UI interactions |
.duration-500 | transition-duration: 500ms | Slow transition for dramatic effect |
.duration-700 | transition-duration: 700ms | Very slow transition |
Transition Properties
| Class Name | CSS Equivalent | Description |
|---|---|---|
.transition | transition-property: all; | Enables transitions on all properties using a smooth easing function |
.transition-rotate | transition-property: rotate; | Applies smooth transitions only to rotate |
Example with Transitions
<div class="rotate-180 hover:rotate-0 transition-rotate duration-500">Hover me</div>Notes
- Combine
.transition-rotatewith.duration-*for smooth rotation. - Use
.transitionif multiple CSS properties (e.g., color, box-shadow) should animate together. - Ensure elements with transforms do not interfere with layout (e.g., overlapping or scaling out of bounds).
Cursor
Cursor #
Use cursor utility classes to control the mouse pointer appearance on hover. These classes map directly to standard CSS cursor values, making it easy to indicate interactivity or context.
Syntax
.cursor-[value]Where [value] is a supported cursor type.
Available Classes
| Class | CSS Value | Description |
|---|---|---|
.cursor-auto | auto | Browser determines the cursor |
.cursor-default | default | Default arrow cursor |
.cursor-pointer | pointer | Indicates a clickable element (like a link) |
.cursor-help | help | Shows a help indicator |
.cursor-wait | wait | Indicates a background process is running |
.cursor-text | text | Indicates selectable text |
.cursor-crosshair | crosshair | Shows a crosshair icon |
.cursor-not-allowed | not-allowed | Indicates an action is not allowed |
.cursor-zoom-in | zoom-in | Indicates zoom-in functionality |
.cursor-zoom-out | zoom-out | Indicates zoom-out functionality |
.cursor-grab | grab | Indicates draggable content |
Examples
<div class="cursor-pointer">cursor-pointer</div>
<div class="cursor-wait">cursor-wait</div>
<div class="cursor-text">cursor-text</div>
<div class="cursor-help">cursor-help</div>
<div class="cursor-crosshair">cursor-crosshair</div>
<div class="cursor-not-allowed">cursor-not-allowed</div>
<div class="cursor-zoom-in">cursor-zoom-in</div>
<div class="cursor-zoom-out">cursor-zoom-out</div>
<div class="cursor-grab">cursor-grab</div>
<div class="cursor-default">cursor-default</div>
<div class="cursor-auto">cursor-auto</div>Masonry
Code
// JavaScript
function add(a, b) {
return a + b;
}
console.log(add(2, 3));
/* CSS */
p { color: green }# Python
adj = ["green", "big"]
fruits = ["apple", "banana"]
for x in adj:
for y in fruits:
print(x, y)Stroke
Stroke #
Use stroke width utilities to control the thickness of text outlines.
Syntax
.stroke-width-[value]Where [value] can be a spacing-based scale or fixed pixel value.
.stroke-[color-name]Where [color-name] refers to any available color defined in your design system (e.g., red, blue-500, black-950, etc.).
Examples
<div class="bold fs-3xl color-grey stroke-red stroke-width-1">Red strokes</div><div class="bold fs-6xl color-grey stroke-blue stroke-width-3">Big strokes</div>Available Stroke Widths
Spacing-Based Widths
These values use your framework’s spacing scale:
| Class | Description |
|---|---|
.stroke-width-0 | No stroke |
.stroke-width-1 | Thin stroke |
.stroke-width-2 | Slightly thicker stroke |
.stroke-width-3 | Moderate stroke |
.stroke-width-4 | Bold stroke |
.stroke-width-5 | Thicker stroke |
.stroke-width-6 | Very thick stroke |
.stroke-width-7 | Maximum stroke |
Pixel-Based Widths
For exact control using fixed units:
| Class | Description |
|---|---|
.stroke-width-1px | 1 pixel stroke |
.stroke-width-2px | 2 pixel stroke |
.stroke-width-3px | 3 pixel stroke |
.stroke-width-4px | 4 pixel stroke |
.stroke-width-5px | 5 pixel stroke |
Stripes
Stripes #
These utilities apply diagonal striped backgrounds using a repeating linear gradient. They support light and dark mode theming.
Usage
Apply classes prefixed with optional mode prefixes to add striped backgrounds:
.stripes-[color]— Stripes background.light:stripes-[color]— Stripes background applied in light mode only.dark:stripes-[color]— Stripes background applied in dark mode only.stripes-bg-[color]-[shade]— Specify the background color and shade.stripes-fg-[color]-[shade]— Specify the foreground color and shade.light:stripes-bg-[color]— Applies the background stripe color only in light mode.dark:stripes-bg-[color]— Applies the background stripe color only in dark mode.light:stripes-fg-[color]— Applies the foreground (stripe line) color only in light mode.dark:stripes-fg-[color]— Applies the foreground (stripe line) color only in dark mode
Examples
Striped background with default colors.
<div class="stripes-red">
Striped background with default colors.
</div>Orange stripes in light mode and blue stripes in dark mode
<div class="dark:stripes-blue light:stripes-orange">
Orange stripes in light mode and blue stripes in dark mode
</div>Orange and purple stripes
<div class="stripes-bg-yellow stripes-fg-purple-500">
Orange and purple stripes
</div>Color list
| Color | CSS Class | Output |
|---|---|---|
| Yellow | stripes-yellow | Color Example |
| Orange | stripes-orange | Color Example |
| Red | stripes-red | Color Example |
| Pink | stripes-pink | Color Example |
| Purple | stripes-purple | Color Example |
| Blue | stripes-blue | Color Example |
| Cyan | stripes-cyan | Color Example |
| Green | stripes-green | Color Example |
| White | stripes-white | Color Example |
| Black | stripes-black | Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Red Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | stripes-fg-red-50 | 50 |
| 100 | stripes-fg-red-100 | 100 |
| 200 | stripes-fg-red-200 | 200 |
| 300 | stripes-fg-red-300 | 300 |
| 400 | stripes-fg-red-400 | 400 |
| 500 | stripes-fg-red-500 | 500 |
| 600 | stripes-fg-red-600 | 600 |
| 700 | stripes-fg-red-700 | 700 |
| 800 | stripes-fg-red-800 | 800 |
| 900 | stripes-fg-red-900 | 900 |
| 950 | stripes-fg-red-950 | 950 |
Hatching
Hatching #
Use hatching utility classes to apply a diagonal striped pattern using a single color across light and dark modes. This pattern uses a 135deg repeating-linear-gradient.
Class Patterns
| Class Pattern | Description |
|---|---|
.hatching-[color] | Sets the hatching color for both light and dark modes |
.hatching-[color]-[shade] | Sets the hatching color shade (e.g. hatching-blue-400) |
.light\:hatching-[color]-[shade] | Sets the hatching color for light mode only |
.dark\:hatching-[color]-[shade] | Sets the hatching color for dark mode only |
Examples
Diagonal orange hatch pattern
<div class="hatching-orange">
Diagonal orange hatch pattern
</div>Diagonal hatch pattern for adaptive theming
<div class="light:hatching-red-200 dark:hatching-blue-700">
Diagonal hatch pattern for adaptive theming
</div>Combine hatching and background color
<div class="bg-red-800 hatching-orange-500">
Combine hatching and background color
</div>Usage Notes
- The background pattern is diagonal and sized at
10px x 10px - Uses
--hatching-lightand--hatching-darkCSS variables under the hood - Can be combined for adaptive themes, e.g. use different colors per mode
Color list
| Color | CSS Class | Output |
|---|---|---|
| Yellow | hatching-yellow | Color Example |
| Orange | hatching-orange | Color Example |
| Red | hatching-red | Color Example |
| Pink | hatching-pink | Color Example |
| Purple | hatching-purple | Color Example |
| Blue | hatching-blue | Color Example |
| Cyan | hatching-cyan | Color Example |
| Green | hatching-green | Color Example |
| White | hatching-white | Color Example |
| Black | hatching-black | Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Red Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | hatching-red-50 | 50 |
| 100 | hatching-red-100 | 100 |
| 200 | hatching-red-200 | 200 |
| 300 | hatching-red-300 | 300 |
| 400 | hatching-red-400 | 400 |
| 500 | hatching-red-500 | 500 |
| 600 | hatching-red-600 | 600 |
| 700 | hatching-red-700 | 700 |
| 800 | hatching-red-800 | 800 |
| 900 | hatching-red-900 | 900 |
| 950 | hatching-red-950 | 950 |
Dotted Grid
Dotted Grid #
Add a subtle dotted pattern to any element using theme-aware utility classes. Dots are rendered using radial-gradient and spaced every 10×10px.
Class Reference
| Class | Description |
|---|---|
.dotted-[color] | Applies a default dotted pattern in the specified color (same in both modes) |
.dotted-[color]-[shade] | Use a specific shade of a color for both light and dark modes |
.light:dotted-[color] | Dotted background visible only in light mode |
.dark:dotted-[color] | Dotted background visible only in dark mode |
.light:dotted-[color]-[shade] | Light mode only with specific shade |
.dark:dotted-[color]-[shade] | Dark mode only with specific shade |
Examples
Pink dots
<div class="dotted-pink">
Pink dots
</div>Dots with green-300
<div class="dotted-green-300">
Dots with green-300
</div>Theme-responsive dotted background
<div class="light:dotted-pink-200 dark:dotted-blue-700">
Theme-responsive dotted background
</div>Combine background and dotted grid
<div class=" bg-red-800 dotted-orange-500">
Combine background and dotted grid
</div>Color list
| Color | CSS Class | Output |
|---|---|---|
| Yellow | dotted-yellow | Color Example |
| Orange | dotted-orange | Color Example |
| Red | dotted-red | Color Example |
| Pink | dotted-pink | Color Example |
| Purple | dotted-purple | Color Example |
| Blue | dotted-blue | Color Example |
| Cyan | dotted-cyan | Color Example |
| Green | dotted-green | Color Example |
| White | dotted-white | Color Example |
| Black | dotted-black | Color Example |
Shades
Each color includes 11 shade levels, ranging from the lightest (-50) to the darkest (-950). Use these to fine-tune the text color of elements.
Red Shade Examples
| Shade | CSS Class | Output |
|---|---|---|
| 50 | dotted-red-50 | 50 |
| 100 | dotted-red-100 | 100 |
| 200 | dotted-red-200 | 200 |
| 300 | dotted-red-300 | 300 |
| 400 | dotted-red-400 | 400 |
| 500 | dotted-red-500 | 500 |
| 600 | dotted-red-600 | 600 |
| 700 | dotted-red-700 | 700 |
| 800 | dotted-red-800 | 800 |
| 900 | dotted-red-900 | 900 |
| 950 | dotted-red-950 | 950 |
Aspect Ratio
Aspect Ratio #
Use .ratio-[width]x[height] utility classes to control the aspect ratio of an element. These classes apply the aspect-ratio CSS property to enforce consistent width-to-height proportions.
Syntax
.ratio-[width]x[height]This sets:
aspect-ratio: [width] / [height] !important;Examples
<div class="mt-4 w-128px ratio-1x1 bg-blue border rounded">1:1</div><div class="mt-4 w-128px ratio-16x9 bg-blue border rounded">16:9</div>Available Ratios
| Class Name | CSS Output | Description |
|---|---|---|
.ratio-1x1 | aspect-ratio: 1 / 1!important; | Square |
.ratio-2x1 | aspect-ratio: 2 / 1!important; | Wide rectangle |
.ratio-1x2 | aspect-ratio: 1 / 2!important; | Tall rectangle |
.ratio-16x9 | aspect-ratio: 16 / 9!important; | Standard HD video ratio |
.ratio-9x16 | aspect-ratio: 9 / 16!important; | Portrait video ratio |
Notes
- You can apply these classes to any block-level or flex/grid item.
- Useful for embedding videos, images, cards, or any container where aspect consistency is required.
- Combine with width utilities (
w-100,w-50, etc.) to define how much horizontal space the element should take.
Greyscale

Greyscale #
Use the .greyscale-[value] utilities to apply a grayscale filter to an element. This is useful for desaturating images, icons, or backgrounds for stylistic or accessibility purposes.
Syntax
.greyscale-[value]This sets:
filter: grayscale([value]);You can also apply these effects on hover using:
.hover:greyscale-[value]Which sets the filter on hover only.
Example

<img class="greyscale-50 hover:greyscale-0" src="image.jpg">This example shows a fully grayscale image that returns to color on hover.
Available Classes
| Class Name | CSS Output | Description |
|---|---|---|
.greyscale-0 | filter: grayscale(0); | No grayscale (original) |
.greyscale-25 | filter: grayscale(0.25); | 25% grayscale |
.greyscale-50 | filter: grayscale(0.50); | 50% grayscale |
.greyscale-75 | filter: grayscale(0.75); | 75% grayscale |
.greyscale-100 | filter: grayscale(1); | Fully grayscale (black & white) |
Hover Variants
| Class Name | Effect on Hover |
|---|---|
.hover:greyscale-0 | Remove grayscale on hover |
.hover:greyscale-25 | Apply 25% grayscale on hover |
.hover:greyscale-50 | Apply 50% grayscale on hover |
.hover:greyscale-75 | Apply 75% grayscale on hover |
.hover:greyscale-100 | Apply full grayscale on hover |
Notes
- Grayscale filters work on any element, but are most commonly used on images and backgrounds.
- For hover effects to be smooth, combine with
.transitionand.duration-*utilities.
Color Palette
Palette #
The color palette is built using the OKLCH CSS color space, which enables precise perceptual control over lightness, contrast, and visual harmony. It includes a wide range of tones organized into tonal columns from 50 to 950, making it ideal for building clear visual hierarchies, UI systems, branding, and editorial design.
Usage
[color-scheme]:[state]:[target]-[name]-[shade][color-scheme]– Applies the color inlight:ordark:mode (optional)[state]– Applies the color on specific states (e.g.,hover:bg-purple-600) (optional)[target]– Element targeted (e.g.,bg,text,border, etc.)[name]– Base color name (e.g.,yellow,orange,blue, etc.)[shade]– Specific tone in the color scale (e.g.,50,100,200, …,950)
Beautiful CSS