santycss 2.4.8 โ†’ 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,26 +1,154 @@
1
- # SantyCSS
2
-
3
- [![npm version](https://img.shields.io/npm/v/santycss.svg?style=flat-square)](https://www.npmjs.com/package/santycss)
4
- [![npm downloads](https://img.shields.io/npm/dm/santycss.svg?style=flat-square)](https://www.npmjs.com/package/santycss)
5
- [![license](https://img.shields.io/npm/l/santycss.svg?style=flat-square)](https://github.com/ChintuSanty/santyCSS/blob/main/LICENSE)
6
- [![bundle size](https://img.shields.io/badge/core-310KB-blue?style=flat-square)](https://www.npmjs.com/package/santycss)
7
-
8
- ๐Ÿ‡ฎ๐Ÿ‡ณ **India's first utility-first CSS framework.**
9
- **Plain-English class names. No build step. No configuration. Just link and use.**
10
- Class names read like sentences โ€” `add-padding-24` instead of `p-6`. AI tools understand them instantly, no lookup table needed.
11
-
12
- ```html
13
- <div class="make-flex align-center gap-16 background-blue-500 round-corners-12 add-padding-24">
14
- <button class="make-button style-primary size-large shape-pill on-hover:animate-bounce">
15
- Get Started
16
- </button>
17
- </div>
18
- ```
19
-
20
- > ๐ŸŒ **[santycss.santy.in](https://santycss.santy.in)** ยท ๐Ÿ“– **[Class Reference](https://santycss.santy.in/classes.html)** ยท ๐ŸŒŠ **[Webflow](https://santycss.santy.in/webflow.html)** ยท ๐ŸŽฌ **[Animations](https://santycss.santy.in/animations.html)** ยท ๐Ÿ“ฆ **[npm Docs](https://santycss.santy.in/docs.html)**
21
-
22
- ---
23
-
1
+ # SantyCSS
2
+
3
+ [![npm version](https://img.shields.io/npm/v/santycss.svg?style=flat-square)](https://www.npmjs.com/package/santycss)
4
+ [![npm downloads](https://img.shields.io/npm/dm/santycss.svg?style=flat-square)](https://www.npmjs.com/package/santycss)
5
+ [![license](https://img.shields.io/npm/l/santycss.svg?style=flat-square)](https://github.com/ChintuSanty/santyCSS/blob/main/LICENSE)
6
+ [![bundle size](https://img.shields.io/badge/core-310KB-blue?style=flat-square)](https://www.npmjs.com/package/santycss)
7
+
8
+ ๐Ÿ‡ฎ๐Ÿ‡ณ **India's first utility-first CSS framework.**
9
+ **Plain-English class names. No build step. No configuration. Just link and use.**
10
+ Class names read like sentences โ€” `add-padding-24` instead of `p-6`. AI tools understand them instantly, no lookup table needed.
11
+
12
+ ```html
13
+ <div class="make-flex align-center gap-16 background-blue-500 round-corners-12 add-padding-24">
14
+ <button class="make-button style-primary size-large shape-pill on-hover:animate-bounce">
15
+ Get Started
16
+ </button>
17
+ </div>
18
+ ```
19
+
20
+ > ๐ŸŒ **[santycss.santy.in](https://santycss.santy.in)** ยท ๐Ÿ“– **[Class Reference](https://santycss.santy.in/classes.html)** ยท ๐ŸŒŠ **[Webflow](https://santycss.santy.in/webflow.html)** ยท ๐ŸŽฌ **[Animations](https://santycss.santy.in/animations.html)** ยท ๐Ÿ“ฆ **[npm Docs](https://santycss.santy.in/docs.html)**
21
+
22
+ ---
23
+
24
+ ## What's New in v2.6.1
25
+
26
+ ### ๐ŸŽจ 4 New Industry Templates
27
+
28
+ Four production-ready, full-page HTML templates built entirely with SantyCSS โ€” copy, paste, done.
29
+
30
+ - **MERIDIAN Academy** โ€” Full 7-page school website: Home (live ticker, hero, events, notifications preview), About (timeline, facilities), Academics (tabbed grade levels, board result bars), Admissions (fee table, application form, FAQ), Faculty (department filter, hover cards), Events (type-filtered calendar), and a **grade-filtered Notifications hub** โ€” All / Grade 1โ€“2 / 3โ€“5 / 6โ€“8 / 9โ€“10 / 11โ€“12 / Staff โ€” with search, sidebar, and 16 real notices
31
+ - **AURUM Studio** โ€” Luxury dark salon: gold accent, serif typography, animated gold marquee strip, 6 service cards, stylist team with hover overlays, photo gallery, testimonials, booking CTA
32
+ - **OPTIXA Vision Center** โ€” Sci-fi eye clinic: animated SVG iris ring, CSS scanline body overlay, cyan glow, concentric tech animation section, doctor cards, testimonials
33
+ - **IRONFORGE Brewing Co.** โ€” Dark industrial craft brewery: amber/copper palette, ember marquee strip, 6-tap beer list with ABV/IBU stats, 6-step brewing process grid, events list, newsletter CTA
34
+
35
+ All templates use SantyCSS utility classes + Unsplash images. Zero external UI dependencies.
36
+
37
+ โ†’ **[Browse all 13 templates](https://santycss.santy.in/templates.html)**
38
+
39
+ ---
40
+
41
+ ## What's New in v2.6.0
42
+
43
+ ### โšก Granular Module Imports
44
+
45
+ Import only the CSS you need โ€” reduces bundle size significantly.
46
+
47
+ ```js
48
+ import 'santycss/css/flex';
49
+ import 'santycss/css/spacing';
50
+ import 'santycss/css/typography';
51
+ ```
52
+
53
+ - **10 module files** in `dist/`: reset, layout, flex, grid, spacing, sizing, typography, colors, borders, effects
54
+ - **Package exports map** โ€” all 10 modules as `./css/<name>` subpaths for bundlers & Vite
55
+ - **`index.js` path helpers** โ€” `santy.flex`, `santy.spacing`, `santy.typography`, etc.
56
+
57
+ ---
58
+
59
+ ## What's New in v2.5.1
60
+
61
+ ### โšก Code Snippets Page
62
+
63
+ New interactive snippets library at `snippets.html` โ€” browse and copy SantyCSS component code.
64
+
65
+ - **8 categories** in dark sidebar โ€” Flex, Grid, Buttons, Badges, Cards, Typography, Forms, Nav
66
+ - **40+ ready-to-use snippets** built entirely with SantyCSS utility classes (no custom CSS)
67
+ - **Card variants**: Stat, Sponsor, Pricing, Cookie Notice, Image Hover, Blog Post, Feature, Dark Pricing, Free vs Pro, Profile, Ribbon, About Me, Dark Profile, Article+Author, Horizontal
68
+ - **Live preview + code modal** โ€” click any card to open a new tab with full preview and syntax-highlighted code
69
+ - **Copy button** โ€” one-click clipboard copy in the preview tab
70
+
71
+ ---
72
+
73
+ ## What's New in v2.5.0
74
+
75
+ ### ๐ŸŽจ Three Portfolio Templates + Framework Fixes
76
+
77
+ Three production-ready portfolio templates built entirely with SantyCSS โ€” no custom CSS.
78
+
79
+ **New Template 3: `itsme.html` โ€” It's Me Creative Portfolio**
80
+ - **5 sections** โ€” Home (hero + profile ring), Resume (bio, services, timeline, skills, testimonials), Works (filterable grid), Blog, Contact
81
+ - **Sticky horizontal nav** โ€” active highlight on scroll, hamburger mobile menu
82
+ - **Orange accent** (`#f97316`) on clean white background
83
+ - **6 service cards** with hover lift, 2 dual timelines (education + experience), 5+5 animated skill bars
84
+ - **Portfolio filter** โ€” All / Web / Graphic / Motion with instant show/hide
85
+ - **6 blog cards** with category tags (web/graphic/motion), hover scale
86
+ - **Contact form** โ€” 5 fields + success feedback without page reload
87
+
88
+ **New Template 1: `portfolio.html` โ€” Snap-Scroll**
89
+ - **6 sections** โ€” About (with profile image & typewriter), Experience (timeline), Skills (animated progress bars), Projects (card grid), Hobbies, Blogs
90
+ - **Right-side dot navigation** (desktop) โ€” hoverable labels, amber active state
91
+ - **Hamburger + full-screen overlay** (mobile) โ€” closes on Esc, backdrop blur
92
+ - **Full-viewport snap scroll** โ€” each section is exactly 100vh, no full-page scroll
93
+ - **SantyCSS animations** โ€” `animate-fade-in-from-left`, `animate-zoom-in`, `animate-bounce-in`, `animate-slide-in-from-left` with staggered `animation-delay-*`
94
+
95
+ **New Template 2: `portfolio-cv.html` โ€” Dark Sidebar**
96
+ - **Fixed left sidebar** โ€” profile initials badge, availability indicator, cyan accent nav
97
+ - **6 sections** โ€” About, Resume (dual timeline: experience + education), Portfolio (filterable grid), Blog, Contact, Extra
98
+ - **Extras** โ€” services grid, fun facts counter (IntersectionObserver), competency tags, testimonials, contact form
99
+ - **Cyan accent** (`#0099e5`) on near-black backgrounds (`#0f0f0f` / `#1c1c1e`)
100
+ - **Responsive** โ€” hamburger toggles sidebar on mobile with overlay
101
+
102
+ **New CSS Classes added to `santy-components.css`:**
103
+
104
+ | Class | Description |
105
+ |---|---|
106
+ | `.portfolio-snap` | Full-page scroll-snap container (hides scrollbar) |
107
+ | `.snap-section` | 100vh section with snap alignment |
108
+ | `.snap-section-scrollable` | 100vh section with internal scroll (styled scrollbar) |
109
+ | `.portfolio-right-nav` | Fixed right-side dot navigation (auto-hides on mobile) |
110
+ | `.nav-dot` / `.nav-dot-active` | Navigation dots with tooltip labels |
111
+ | `.glass-card` / `.glass-card-light` | Glassmorphism cards with backdrop blur |
112
+ | `.avatar-ring-lg` | Large avatar with spinning conic-gradient ring |
113
+ | `.skill-bar-track` / `.skill-bar-fill` | Animated skill bar + colour variants |
114
+ | `.cv-sidebar` / `.cv-main` | Fixed left sidebar + offset main content |
115
+ | `.cv-nav-link` / `.cv-nav-active` | Sidebar navigation link states |
116
+ | `.cv-section` / `.cv-section-alt` | Alternating section backgrounds |
117
+ | `.timeline-dark` / `.timeline-dot-cyan` | Dark timeline with cyan dot variant |
118
+ | `.skill-bar-dark` / `.skill-bar-dark-fill` | Dark-mode skill bar components |
119
+ | `.fun-fact-card` | Fun facts counter card |
120
+ | `.project-card-dark` / `.blog-card-dark` | Dark project and blog cards |
121
+ | `.service-card-dark` / `.what-i-do-card` | Service and skill-highlight cards |
122
+ | `.testimonial-card-dark` | Dark testimonial card |
123
+ | `.input-dark` / `.textarea-dark` | Dark form input and textarea |
124
+ | `.btn-cyan` / `.btn-cyan-outline` | Cyan action buttons |
125
+ | `.pf-filter-btn` / `.pf-active` | Portfolio filter buttons |
126
+ | `.tag-dark` | Dark tag/pill component |
127
+ | `.color-brand-cyan` / `.background-brand-cyan` | Cyan brand color utilities |
128
+ | `.icon` + `.icon-16` โ†’ `.icon-48` | Base class for essential UI icons + pixel size helpers |
129
+ | `.background-zinc-950` | Near-black `#09090b` background |
130
+
131
+ ```html
132
+ <!-- Snap-scroll quick start -->
133
+ <main class="portfolio-snap">
134
+ <section class="snap-section" id="about">...</section>
135
+ <section class="snap-section-scrollable" id="experience">...</section>
136
+ </main>
137
+ <nav class="portfolio-right-nav">
138
+ <a class="nav-dot nav-dot-active" data-label="About" data-target="about" href="#about"></a>
139
+ </nav>
140
+
141
+ <!-- Sidebar CV quick start -->
142
+ <aside class="cv-sidebar" id="cv-sidebar">
143
+ <a href="#about" class="cv-nav-link cv-nav-active">About Me</a>
144
+ </aside>
145
+ <main class="cv-main">
146
+ <section id="about" class="cv-section">...</section>
147
+ </main>
148
+ ```
149
+
150
+ ---
151
+
24
152
  ## What's New in v2.4.8
25
153
 
26
154
  ### ๐Ÿš€ Homepage UX Improvements
@@ -36,984 +164,984 @@ Six homepage enhancements for better discoverability and developer experience:
36
164
 
37
165
  ---
38
166
 
39
- ## What's New in v2.4.7
40
-
41
- ### ๐ŸŽจ 2078 Essential UI Icons (+78 new โ€” final batch)
42
-
43
- 78 final icons completing the Essential UI library โ€” USB drives, volume controls, wallet, webcam, wifi, windows, wrench, x/close variants, and zoom.
44
-
45
- ```html
46
- <span class="icon icon-volume-up-fill icon-size-xl" style="color:#3b82f6;"></span>
47
- <span class="icon icon-wifi icon-size-xl" style="color:#10b981;"></span>
48
- <span class="icon icon-wrench-adjustable-circle-fill icon-size-xl" style="color:#6366f1;"></span>
49
- <span class="icon icon-zoom-in icon-size-xl" style="color:#f59e0b;"></span>
50
- ```
51
-
52
- **New icons (78):**
53
-
54
- | Group | Icons |
55
- |---|---|
56
- | USB | `usb-drive` `usb-drive-fill` `usb-fill` `usb-micro` `usb-micro-fill` `usb-mini` `usb-mini-fill` `usb-plug` `usb-plug-fill` `usb-symbol` |
57
- | Misc | `valentine` `valentine2` `vector-pen` `view-list` `view-stacked` `vignette` `vimeo` `vinyl` `vinyl-fill` `virus` `virus2` `voicemail` `vr` |
58
- | Volume | `volume-down` `volume-down-fill` `volume-mute` `volume-mute-fill` `volume-off` `volume-off-fill` `volume-up` `volume-up-fill` |
59
- | Wallet & Watch | `wallet` `wallet-fill` `wallet2` `watch` `water` |
60
- | Camera & Comms | `webcam` `webcam-fill` `wechat` `whatsapp` |
61
- | Wifi | `wifi` `wifi-1` `wifi-2` `wifi-off` |
62
- | Misc | `wikipedia` `wind` `windows` `wordpress` `xbox` `yelp` `yin-yang` `youtube` |
63
- | Window | `window` `window-dash` `window-desktop` `window-dock` `window-fullscreen` `window-plus` `window-sidebar` `window-split` `window-stack` `window-x` |
64
- | Wrench | `wrench` `wrench-adjustable` `wrench-adjustable-circle` `wrench-adjustable-circle-fill` |
65
- | Close / X | `x` `x-circle` `x-circle-fill` `x-diamond` `x-diamond-fill` `x-lg` `x-octagon` `x-octagon-fill` `x-square` `x-square-fill` |
66
- | Zoom | `zoom-in` `zoom-out` |
67
-
68
- ---
69
-
70
- ## What's New in v2.4.6
71
-
72
- ### ๐ŸŽจ 2000 Essential UI Icons (1000 new in this release)
73
-
74
- 1000 new icons covering file types, folders, filters, gears, globes, hearts, houses, journals, media controls, people, phones, shields, signs, terminals, trash, and much more.
75
-
76
- ```html
77
- <span class="icon icon-heart-pulse-fill icon-size-xl" style="color:#ef4444;"></span>
78
- <span class="icon icon-person-fill-check icon-size-xl" style="color:#10b981;"></span>
79
- <span class="icon icon-shield-fill-check icon-size-xl" style="color:#3b82f6;"></span>
80
- <span class="icon icon-rocket-takeoff-fill icon-size-xl" style="color:#8b5cf6;"></span>
81
- ```
82
-
83
- **New icons include:** file-ruled, file-slides, file-spreadsheet, file-text, file-word, file-x, file-zip, files, files-alt, filetype-aac, filetype-ai, filetype-bmp, filetype-cs, filetype-css, filetype-csv, filetype-doc, filetype-docx, filetype-exe, filetype-gif, filetype-heic, filetype-html, filetype-java, filetype-jpg, filetype-js, filetype-json, filetype-jsx, filetype-key, filetype-m4p, filetype-md, filetype-mdx, filetype-mov, filetype-mp3, filetype-mp4, filetype-otf, filetype-pdf, filetype-php, filetype-png, filetype-ppt, filetype-pptx, filetype-psd, filetype-py, filetype-raw, filetype-rb, filetype-sass, filetype-scss, filetype-sh, filetype-sql, filetype-svg, filetype-tiff, filetype-tsx, filetype-ttf, filetype-txt, filetype-wav, filetype-woff, filetype-xls, filetype-xlsx, filetype-xml, filetype-yml, film, filter, fingerprint, fire, flag, flask, flask-florence, floppy, floppy2, flower1, flower2, flower3, folder, folder-check, folder-fill, folder-minus, folder-plus, folder-symlink, folder-x, folder2, folder2-open, fonts, fork-knife, forward, fuel-pump, fullscreen, funnel, gear, gear-fill, gear-wide, gear-wide-connected, gem, gender-ambiguous, gender-female, gender-male, gender-neuter, gender-trans, geo, geo-alt, gift, git, github, gitlab, globe, globe-americas, globe-asia-australia, globe-central-south-asia, globe-europe-africa, globe2, google, google-play, gpu-card, graph-down, graph-up, grid, grip-horizontal, grip-vertical, h-circle, h-square, hammer, hand-index, hand-index-thumb, hand-thumbs-down, hand-thumbs-up, handbag, hash, hdd, hdd-network, hdd-rack, hdd-stack, hdmi, headphones, headset, headset-vr, heart, heart-arrow, heart-pulse, heartbreak, hearts, heptagon, hexagon, highlighter, highlights, hospital, hourglass, house (all variants), houses, hr, hurricane, hypnotize, image, images, inbox, inboxes, incognito, indent, infinity, info, input-cursor, instagram, javascript, journal (all variants), joystick, justify, kanban, key, keyboard, ladder, lamp, laptop, layer-backward, layer-forward, layers, layout-sidebar, layout-split, layout-text-sidebar, layout-text-window, layout-three-columns, layout-wtf, leaf, life-preserver, lightbulb, lightning, link, linkedin, list (all variants), lock, luggage, lungs, magic, magnet, mailbox, map, markdown, mask, mastodon, megaphone, memory, menu-app, menu-button, mic, microsoft, microsoft-teams, modem, moon, mortarboard, motherboard, mouse (all variants), music-note, newspaper, nintendo-switch, node-minus, node-plus, nut, nvidia, nvme, octagon, openai, palette, paperclip, pass, passport, patch-check, patch-exclamation, patch-minus, patch-plus, patch-question, pause, paypal, pc, pci-card, peace, pen, pencil, pentagon, people, person (all 50+ variants), phone, pie-chart, piggy-bank, pin, pip, play, plug, plus, postage, postcard, power, printer, projector, puzzle, qr-code, question, quote, r-circle, radar, radioactive, rainbow, receipt, reception (0-4), record, recycle, reddit, repeat, reply, rewind, robot, rocket, router, rss, rulers, safe, save, scissors, search, send (all variants), server, share, shield (all variants), sign (all road signs), sim, skip-backward, skip-end, skip-forward, skip-start, skype, slack, slash, sliders, smartwatch, snapchat, snow, sort-alpha, sort-down, sort-numeric, sort-up, soundwave, speaker, speedometer, spotify, square, star, stickies, sticky, stop, stopwatch, strava, stripe, suit (club/diamond/heart/spade), suitcase, sun, sunrise, sunset, table, tablet, tag, taxi-front, telegram, telephone (all variants), terminal, text-center, text-indent, textarea, thermometer, threads, three-dots, thunderbolt, ticket, tiktok, toggle, tools, tornado, train-freight-front, train-front, train-lightrail-front, translate, transparency, trash (all variants), tree, trello, triangle, trophy, truck, tv, twitch, twitter, twitter-x, type (all heading variants), typescript, ubuntu, ui-checks, ui-radios, umbrella, union, unity, universal-access, unlock, upc, upload, usb, usb-c, and 50+ more fill variants.
84
-
85
- ---
86
-
87
- ## What's New in v2.4.5
88
-
89
- ### ๐ŸŽจ 1000 Essential UI Icons + Scrollable Grid + Sub-filters
90
-
91
- 600 new icons added โ€” calendars (all variants), camera & media, chat & messaging, cloud & weather, clipboard, checks & chevrons, database & devices, emoji, envelopes, files & documents, and more.
92
-
93
- The icon browser now features:
94
- - **Scrollable Essential UI grid** โ€” browse 1000 icons in a fixed-height scrollable area
95
- - **Sub-filters** โ€” filter by category: Numbers, Arrows, Calendar, Camera, Chat, Cloud, Database, Emoji, Files, Shapes, Shopping
96
-
97
- ```html
98
- <span class="icon icon-chat-left-text-fill icon-size-xl" style="color:#6366f1;"></span>
99
- <span class="icon icon-cloud-lightning-rain-fill icon-size-xl" style="color:#0ea5e9;"></span>
100
- <span class="icon icon-file-earmark-pdf-fill icon-size-xl" style="color:#ef4444;"></span>
101
- <span class="icon icon-emoji-laughing-fill icon-size-xl" style="color:#f59e0b;"></span>
102
- ```
103
-
104
- **New icons (600):**
105
-
106
- | Group | Icons |
107
- |---|---|
108
- | Calendar variants | `calendar2-fill` `calendar2-heart` `calendar2-minus` `calendar2-month` `calendar2-plus` `calendar2-range` `calendar2-week` `calendar2-x` `calendar3` `calendar3-event` `calendar3-fill` `calendar3-range` `calendar3-week` `calendar4` `calendar4-event` `calendar4-range` `calendar4-week` (+ fill variants) |
109
- | Camera & Media | `camera` `camera-fill` `camera-reels` `camera-video` `camera-video-off` `camera2` `cassette` `cast` |
110
- | Cart & Shopping | `cart` `cart-check` `cart-dash` `cart-fill` `cart-plus` `cart-x` `cart2` `cart3` `cart4` |
111
- | Chat & Messaging | `chat` `chat-dots` `chat-fill` `chat-heart` `chat-left` `chat-left-dots` `chat-left-fill` `chat-left-heart` `chat-left-quote` `chat-left-text` `chat-quote` `chat-right` `chat-right-dots` `chat-right-fill` `chat-right-heart` `chat-right-quote` `chat-right-text` `chat-square` `chat-square-dots` `chat-square-fill` `chat-square-heart` `chat-square-quote` `chat-square-text` `chat-text` (+ fill variants) |
112
- | Check & Shapes | `check` `check-all` `check-circle` `check-lg` `check-square` `check2` `check2-all` `check2-circle` `check2-square` |
113
- | Chevrons | `chevron-bar-contract` `chevron-bar-down` `chevron-bar-expand` `chevron-bar-left` `chevron-bar-right` `chevron-bar-up` `chevron-compact-down` `chevron-compact-left` `chevron-compact-right` `chevron-compact-up` `chevron-contract` `chevron-double-down` `chevron-double-left` `chevron-double-right` `chevron-double-up` `chevron-down` `chevron-expand` `chevron-left` `chevron-right` `chevron-up` |
114
- | Clipboard | `clipboard` `clipboard-check` `clipboard-data` `clipboard-fill` `clipboard-heart` `clipboard-minus` `clipboard-plus` `clipboard-pulse` `clipboard-x` `clipboard2` (+ all clipboard2 variants, + fill variants) |
115
- | Clock | `clock` `clock-fill` `clock-history` |
116
- | Cloud & Weather | `cloud` `cloud-arrow-down` `cloud-arrow-up` `cloud-check` `cloud-download` `cloud-drizzle` `cloud-fill` `cloud-fog` `cloud-fog2` `cloud-hail` `cloud-haze` `cloud-haze2` `cloud-lightning` `cloud-lightning-rain` `cloud-minus` `cloud-moon` `cloud-plus` `cloud-rain` `cloud-rain-heavy` `cloud-slash` `cloud-sleet` `cloud-snow` `cloud-sun` `cloud-upload` `clouds` `cloudy` (+ fill variants) |
117
- | Currency | `currency-bitcoin` `currency-dollar` `currency-euro` `currency-exchange` `currency-pound` `currency-rupee` `currency-yen` |
118
- | Database & Device | `database` `database-add` `database-check` `database-dash` `database-down` `database-exclamation` `database-fill` (+ all database-fill-* variants) `device-hdd` `device-ssd` |
119
- | Emoji | `emoji-angry` `emoji-astonished` `emoji-dizzy` `emoji-expressionless` `emoji-frown` `emoji-grimace` `emoji-grin` `emoji-heart-eyes` `emoji-kiss` `emoji-laughing` `emoji-neutral` `emoji-smile` `emoji-smile-upside-down` `emoji-sunglasses` `emoji-surprise` `emoji-tear` `emoji-wink` (+ fill variants) |
120
- | Envelope | `envelope` `envelope-arrow-down` `envelope-arrow-up` `envelope-at` `envelope-check` `envelope-dash` `envelope-exclamation` `envelope-fill` `envelope-heart` `envelope-open` `envelope-open-heart` `envelope-paper` `envelope-paper-heart` `envelope-plus` `envelope-slash` `envelope-x` (+ fill variants) |
121
- | File docs | `file` `file-arrow-down` `file-arrow-up` `file-bar-graph` `file-binary` `file-break` `file-check` `file-code` `file-diff` `file-earmark` (+ all earmark variants) `file-easel` `file-excel` `file-fill` `file-font` `file-image` `file-lock` `file-lock2` `file-medical` `file-minus` `file-music` `file-pdf` `file-person` `file-play` `file-plus` `file-post` `file-ppt` `file-richtext` (+ fill variants) |
122
-
123
- ---
124
-
125
- ## What's New in v2.4.4
126
-
127
- ### ๐ŸŽฏ 400 Essential UI Icons (+100 new)
128
-
129
- 100 more icons โ€” boxes, buildings, browsers, calendars, brightness controls and more.
130
-
131
- ```html
132
- <span class="icon icon-building-fill icon-size-2x" style="color:#6366f1;"></span>
133
- <span class="icon icon-calendar-heart-fill icon-size-xl" style="color:#ec4899;"></span>
134
- <span class="icon icon-briefcase-fill icon-size-xl" style="color:#3b82f6;"></span>
135
- <span class="icon icon-brightness-high-fill icon-size-xl" style="color:#f59e0b;"></span>
136
- <span class="icon icon-bug-fill icon-size-xl" style="color:#ef4444;"></span>
137
- ```
138
-
139
- **New icons (100):**
140
-
141
- | Group | Icons |
142
- |---|---|
143
- | Boxes | `box2-fill` `box2-heart` `box2-heart-fill` `boxes` |
144
- | Dev | `braces` `braces-asterisk` `bricks` `bug` `bug-fill` |
145
- | Work | `briefcase` `briefcase-fill` `bullseye` |
146
- | Display | `brightness-alt-high` `brightness-alt-high-fill` `brightness-alt-low` `brightness-alt-low-fill` `brightness-high` `brightness-high-fill` `brightness-low` `brightness-low-fill` `brilliance` |
147
- | Media | `broadcast` `broadcast-pin` |
148
- | Browsers | `browser-chrome` `browser-edge` `browser-firefox` `browser-safari` |
149
- | Design | `brush` `brush-fill` `bucket` `bucket-fill` |
150
- | Buildings | `building` `building-add` `building-check` `building-dash` `building-down` `building-exclamation` `building-fill` `building-fill-add` `building-fill-check` `building-fill-dash` `building-fill-down` `building-fill-exclamation` `building-fill-gear` `building-fill-lock` `building-fill-slash` `building-fill-up` `building-fill-x` `building-gear` `building-lock` `building-slash` `building-up` `building-x` `buildings` `buildings-fill` |
151
- | Transport | `bus-front` `bus-front-fill` |
152
- | Legal | `c-circle` `c-circle-fill` `c-square` `c-square-fill` |
153
- | Food | `cake` `cake-fill` `cake2` `cake2-fill` |
154
- | Tools | `calculator` `calculator-fill` |
155
- | Calendars | `calendar` `calendar-check` `calendar-check-fill` `calendar-date` `calendar-date-fill` `calendar-day` `calendar-day-fill` `calendar-event` `calendar-event-fill` `calendar-fill` `calendar-heart` `calendar-heart-fill` `calendar-minus` `calendar-minus-fill` `calendar-month` `calendar-month-fill` `calendar-plus` `calendar-plus-fill` `calendar-range` `calendar-range-fill` `calendar-week` `calendar-week-fill` `calendar-x` `calendar-x-fill` `calendar2` `calendar2-check` `calendar2-check-fill` `calendar2-date` `calendar2-date-fill` `calendar2-day` `calendar2-day-fill` `calendar2-event` `calendar2-event-fill` |
156
-
157
- ---
158
-
159
- ## What's New in v2.4.3
160
-
161
- ### ๐ŸŽฏ 300 Essential UI Icons (+100 new)
162
-
163
- 100 more icons added โ€” ban/block, charts, baskets, battery, books, bookmarks, boxes, borders and more.
164
-
165
- ```html
166
- <span class="icon icon-ban-fill icon-size-xl" style="color:#ef4444;"></span>
167
- <span class="icon icon-bar-chart-fill icon-size-2x" style="color:#3b82f6;"></span>
168
- <span class="icon icon-bookmark-heart-fill icon-size-xl" style="color:#ec4899;"></span>
169
- <span class="icon icon-box-arrow-up-right icon-size-lg"></span>
170
- <span class="icon icon-battery-full icon-size-xl" style="color:#22c55e;"></span>
171
- ```
172
-
173
- **New icons (100):**
174
-
175
- | Group | Icons |
176
- |---|---|
177
- | Block / Medical | `ban` `ban-fill` `bandaid` `bandaid-fill` |
178
- | Finance | `bank` `bank2` `bar-chart` `bar-chart-fill` `bar-chart-line` `bar-chart-line-fill` `bar-chart-steps` |
179
- | Shopping | `basket` `basket-fill` `basket2` `basket2-fill` `basket3` `basket3-fill` |
180
- | Device | `battery` `battery-charging` `battery-full` `battery-half` `battery-low` |
181
- | Science / Social | `beaker` `beaker-fill` `behance` `bing` `bluesky` `bluetooth` |
182
- | Notifications | `bell` `bell-fill` `bell-slash` `bell-slash-fill` |
183
- | Design | `bezier` `bezier2` `binoculars` `binoculars-fill` `bounding-box` `bounding-box-circles` |
184
- | Transport | `bicycle` |
185
- | Text | `blockquote-left` `blockquote-right` `body-text` |
186
- | Books | `book` `book-fill` `book-half` `bookmarks` `bookmarks-fill` `bookshelf` |
187
- | Bookmarks | `bookmark` `bookmark-check` `bookmark-check-fill` `bookmark-dash` `bookmark-dash-fill` `bookmark-fill` `bookmark-heart` `bookmark-heart-fill` `bookmark-plus` `bookmark-plus-fill` `bookmark-star` `bookmark-star-fill` `bookmark-x` `bookmark-x-fill` |
188
- | Media | `boombox` `boombox-fill` |
189
- | Framework | `bootstrap` `bootstrap-fill` `bootstrap-reboot` |
190
- | Border | `border` `border-all` `border-bottom` `border-center` `border-inner` `border-left` `border-middle` `border-outer` `border-right` `border-style` `border-top` `border-width` |
191
- | Boxes | `box` `box-arrow-down` `box-arrow-down-left` `box-arrow-down-right` `box-arrow-in-down` `box-arrow-in-down-left` `box-arrow-in-down-right` `box-arrow-in-left` `box-arrow-in-right` `box-arrow-in-up` `box-arrow-in-up-left` `box-arrow-in-up-right` `box-arrow-left` `box-arrow-right` `box-arrow-up` `box-arrow-up-left` `box-arrow-up-right` `box-fill` `box-seam` `box-seam-fill` `box2` |
192
-
193
- ---
194
-
195
- ## What's New in v2.4.2
196
-
197
- ### ๐ŸŽฏ 200 Essential UI Icons (+100 new)
198
-
199
- Another 100 icons added to the **Essential UI** category โ€” arrows (all directions, variants), aspect ratio, badges, bags, balloons, backpacks and more.
200
-
201
- ```html
202
- <span class="icon icon-arrow-repeat icon-size-xl" style="color:#3b82f6;"></span>
203
- <span class="icon icon-arrows-fullscreen icon-size-lg"></span>
204
- <span class="icon icon-bag-heart-fill icon-size-2x" style="color:#ef4444;"></span>
205
- <span class="icon icon-award-fill icon-size-2x" style="color:#f59e0b;"></span>
206
- <span class="icon icon-balloon-heart icon-size-xl" style="color:#ec4899;"></span>
207
- ```
208
-
209
- **New icons (100):**
210
-
211
- | Group | Icons |
212
- |---|---|
213
- | Arrows (more) | `arrow-left-right` `arrow-left-short` `arrow-left-square` `arrow-left-square-fill` `arrow-repeat` `arrow-return-left` `arrow-return-right` `arrow-right` `arrow-right-circle` `arrow-right-circle-fill` `arrow-right-short` `arrow-right-square` `arrow-right-square-fill` `arrow-through-heart` `arrow-through-heart-fill` `arrow-up` `arrow-up-circle` `arrow-up-circle-fill` `arrow-up-left` `arrow-up-left-circle` `arrow-up-left-circle-fill` `arrow-up-left-square` `arrow-up-left-square-fill` `arrow-up-right` `arrow-up-right-circle` `arrow-up-right-circle-fill` `arrow-up-right-square` `arrow-up-right-square-fill` `arrow-up-short` `arrow-up-square` `arrow-up-square-fill` |
214
- | Arrows (set) | `arrows` `arrows-angle-contract` `arrows-angle-expand` `arrows-collapse` `arrows-collapse-vertical` `arrows-expand` `arrows-expand-vertical` `arrows-fullscreen` `arrows-move` `arrows-vertical` |
215
- | UI | `aspect-ratio` `aspect-ratio-fill` `asterisk` `at` `award` `award-fill` `back` `backspace` `backspace-fill` `backspace-reverse` `backspace-reverse-fill` |
216
- | Bags & Packs | `backpack` `backpack-fill` `backpack2` `backpack2-fill` `backpack3` `backpack3-fill` `backpack4` `backpack4-fill` `bag` `bag-check` `bag-check-fill` `bag-dash` `bag-dash-fill` `bag-fill` `bag-heart` `bag-heart-fill` `bag-plus` `bag-plus-fill` `bag-x` `bag-x-fill` |
217
- | Badges | `badge-3d` `badge-3d-fill` `badge-4k` `badge-4k-fill` `badge-8k` `badge-8k-fill` `badge-ad` `badge-ad-fill` `badge-ar` `badge-ar-fill` `badge-cc` `badge-cc-fill` `badge-hd` `badge-hd-fill` `badge-sd` `badge-sd-fill` `badge-tm` `badge-tm-fill` `badge-vo` `badge-vo-fill` `badge-vr` `badge-vr-fill` `badge-wc` `badge-wc-fill` |
218
- | Fun | `balloon` `balloon-fill` `balloon-heart` `balloon-heart-fill` |
219
-
220
- ---
221
-
222
- ## What's New in v2.4.1
223
-
224
- ### ๐ŸŽฏ 100 Essential UI Icons
225
-
226
- New category โ€” **Essential UI** โ€” adds 100 carefully selected icons to `santy-icons.css`. Use them with the same `.icon` system.
227
-
228
- ```html
229
- <link rel="stylesheet" href="santy-icons.css">
230
-
231
- <!-- Number badges -->
232
- <span class="icon icon-0-circle"></span>
233
- <span class="icon icon-5-circle-fill icon-size-lg" style="color:#3b82f6;"></span>
234
-
235
- <!-- Arrows -->
236
- <span class="icon icon-arrow-down"></span>
237
- <span class="icon icon-arrow-clockwise icon-size-xl" style="color:#22c55e;"></span>
238
-
239
- <!-- UI chrome -->
240
- <span class="icon icon-activity"></span>
241
- <span class="icon icon-alarm icon-size-2x" style="color:#ef4444;"></span>
242
- <span class="icon icon-archive-fill"></span>
243
- ```
244
-
245
- **Full icon list (100):**
246
-
247
- | Group | Icons |
248
- |---|---|
249
- | Numbers | `0-circle` `0-circle-fill` `0-square` `0-square-fill` `1-circle` `1-circle-fill` `1-square` `1-square-fill` `123` `2-circle` `2-circle-fill` `2-square` `2-square-fill` `3-circle` `3-circle-fill` `3-square` `3-square-fill` `4-circle` `4-circle-fill` `4-square` `4-square-fill` `5-circle` `5-circle-fill` `5-square` `5-square-fill` `6-circle` `6-circle-fill` `6-square` `6-square-fill` `7-circle` `7-circle-fill` `7-square` `7-square-fill` `8-circle` `8-circle-fill` `8-square` `8-square-fill` `9-circle` `9-circle-fill` `9-square` `9-square-fill` |
250
- | Activity & Travel | `activity` `airplane` `airplane-engines` `airplane-engines-fill` `airplane-fill` `alarm` `alarm-fill` |
251
- | Brands | `alexa` `alipay` `amazon` `amd` `android` `android2` `anthropic` `apple` `apple-music` `app` `app-indicator` |
252
- | Alignment | `align-bottom` `align-center` `align-end` `align-middle` `align-start` `align-top` |
253
- | Text | `alphabet` `alphabet-uppercase` `alt` |
254
- | Files | `archive` `archive-fill` |
255
- | Arrows | `arrow-90deg-down` `arrow-90deg-left` `arrow-90deg-right` `arrow-90deg-up` `arrow-bar-down` `arrow-bar-left` `arrow-bar-right` `arrow-bar-up` `arrow-clockwise` `arrow-counterclockwise` `arrow-down` `arrow-down-circle` `arrow-down-circle-fill` `arrow-down-left` `arrow-down-left-circle` `arrow-down-left-circle-fill` `arrow-down-left-square` `arrow-down-left-square-fill` `arrow-down-right` `arrow-down-right-circle` `arrow-down-right-circle-fill` `arrow-down-right-square` `arrow-down-right-square-fill` `arrow-down-short` `arrow-down-square` `arrow-down-square-fill` `arrow-down-up` `arrow-left` `arrow-left-circle` `arrow-left-circle-fill` |
256
-
257
- > ๐ŸŽจ **[Icon Browser](https://santycss.santy.in/icons.html)** โ€” filter by "Essential UI" to browse all 100
258
-
259
- ---
260
-
261
- ## What's New in v2.4.0
262
-
263
- ### โšก Migrate from Tailwind in One Command
264
-
265
- Already using Tailwind CSS? Switch your entire project โ€” HTML, JSX, TSX, Vue, Svelte โ€” without rewriting a single file:
266
-
267
- ```bash
268
- npx santycss migrate --input=src/
269
- ```
270
-
271
- **Options:**
272
- ```bash
273
- npx santycss migrate --input=src/ # convert all files in src/
274
- npx santycss migrate --file=index.html # single file
275
- npx santycss migrate --dry-run # preview only, no writes
276
- npx santycss migrate --dry-run --report # also list unmapped classes
277
- ```
278
-
279
- **What gets converted:**
280
-
281
- | Tailwind | SantyCSS |
282
- |---|---|
283
- | `flex items-center gap-4` | `make-flex align-center gap-16` |
284
- | `p-6 mt-4 mb-8` | `add-padding-24 add-margin-top-16 add-margin-bottom-32` |
285
- | `text-lg font-semibold` | `set-text-18 text-semibold` |
286
- | `bg-blue-500 text-white rounded-lg shadow-md` | `background-blue-500 color-white make-rounded-lg add-shadow-md` |
287
- | `hidden md:block` | `make-hidden tablet:make-block` |
288
- | `grid grid-cols-3 gap-6` | `make-grid grid-cols-3 gap-24` |
289
-
290
- Covers 150+ Tailwind class names across flex/grid, spacing, typography, colors, borders, shadows, overflow, position, z-index, transitions, and more.
291
-
292
- ---
293
-
294
- ### ๐ŸŒ™ Dark Mode Semantic Token System
295
-
296
- New CSS-variable token layer โ€” add `data-theme="dark"` to any element and every utility class adapts automatically. No duplicate classes, no `dark:` prefixes for common patterns:
297
-
298
- ```html
299
- <!-- Dark theme -->
300
- <html data-theme="dark">
301
-
302
- <!-- Follow OS preference -->
303
- <html class="theme-auto">
304
-
305
- <!-- Semantic utility classes โ€” adapt in both themes -->
306
- <div class="bg-surface text-base">
307
- <p class="text-muted">Subtitle</p>
308
- <span class="text-accent">Highlight</span>
309
- <hr class="border-base">
310
- </div>
311
- ```
312
-
313
- **New semantic token classes:**
314
-
315
- | Class | Light | Dark |
316
- |---|---|---|
317
- | `bg-base` | `#ffffff` | `#0f172a` |
318
- | `bg-subtle` | `#f9fafb` | `#1e293b` |
319
- | `bg-surface` | `#ffffff` | `#1e293b` |
320
- | `bg-elevated` | `#ffffff` | `#334155` |
321
- | `text-base` | `#111827` | `#f1f5f9` |
322
- | `text-muted` | `#6b7280` | `#94a3b8` |
323
- | `text-subtle` | `#9ca3af` | `#64748b` |
324
- | `text-accent` | `#3b82f6` | `#60a5fa` |
325
- | `bg-accent` | `#3b82f6` | `#60a5fa` |
326
- | `bg-accent-light` | `rgba(59,130,246,.12)` | `rgba(96,165,250,.15)` |
327
- | `border-base` | `#e5e7eb` | `#334155` |
328
- | `border-strong` | `#d1d5db` | `#475569` |
329
-
330
- **Override tokens in your own CSS:**
331
- ```css
332
- :root {
333
- --santy-accent: #7c3aed; /* brand purple */
334
- --santy-accent-light: rgba(124,58,237,.12);
335
- }
336
- [data-theme="dark"] {
337
- --santy-accent: #a78bfa;
338
- }
339
- ```
340
-
341
- ---
342
-
343
- ### ๐Ÿค– AI-First โ€” Why SantyCSS is Better for AI
344
-
345
- SantyCSS class names **are** the documentation. `add-bg-blue make-rounded` tells an LLM exactly what it's doing. `bg-blue-500 rounded-lg` requires a lookup table.
346
-
347
- ```
348
- Tailwind: bg-blue-500 rounded-lg shadow-md p-6 text-white font-semibold
349
- SantyCSS: background-blue-500 make-rounded-lg add-shadow-md add-padding-24 color-white text-semibold
350
- ```
351
-
352
- The SantyCSS version is self-documenting โ€” any developer (or AI) reading it knows exactly what CSS is applied. No docs needed.
353
-
354
- **Use the context file** โ€” paste `santycss.context.md` into Claude, GPT-4, or Cursor's system prompt:
355
- ```
356
- Paste santycss.context.md โ†’ AI writes SantyCSS instead of Tailwind, every time
357
- ```
358
-
359
- ---
360
-
361
- ## What's New in v2.0
362
-
363
- ### ๐Ÿฆ‡ Creature Animations โ€” Premium Free
364
-
365
- 10 hand-crafted creature animations included free in v2.0. No extra import, no paywall โ€” just add the class.
366
-
367
- | Class | Creature | Description |
368
- |---|---|---|
369
- | `animate-bat-fly` | ๐Ÿฆ‡ Bat | Flies across screen with arcing path |
370
- | `animate-bat-wings` | ๐Ÿฆ‡ Bat wings | Wing flap loop (combine with `animate-bat-fly`) |
371
- | `animate-butterfly` | ๐Ÿฆ‹ Butterfly | Wing flap using scaleX |
372
- | `animate-butterfly-drift` | ๐Ÿฆ‹ Butterfly drift | Drifts through the air while flapping |
373
- | `animate-firefly` | ๐ŸŒŸ Firefly | Erratic glowing float |
374
- | `animate-firefly-glow` | โœจ Firefly glow | Pulsing yellow glow effect |
375
- | `animate-spider-drop` | ๐Ÿ•ท๏ธ Spider | Descends on thread and ascends |
376
- | `animate-spider-swing` | ๐Ÿ•ท๏ธ Spider swing | Pendulum swing on thread |
377
- | `animate-fish-swim` | ๐ŸŸ Fish | Swims with tail-wave body motion |
378
- | `animate-jellyfish` | ๐ŸŽ Jellyfish | Pulsing bell contraction + float |
379
- | `animate-jellyfish-tendrils` | ๐ŸŽ Tendrils | Trailing tendril sway |
380
- | `animate-bird-flock` | ๐Ÿฆ Bird | Soaring arc with rotation |
381
- | `animate-bird-flock-2` / `animate-bird-flock-3` | ๐Ÿฆ๐Ÿฆ Flock | Staggered offsets for formation effect |
382
- | `animate-bee-hover` | ๐Ÿ Bee | Hovering with natural drift |
383
- | `animate-bee-buzz` | ๐Ÿ Buzz | Rapid wing-buzz shake |
384
- | `animate-snake-slither` | ๐Ÿ Snake | Sinusoidal slithering path |
385
- | `animate-dragon-fire` | ๐Ÿ”ฅ Dragon fire | Fire burst expanding and fading |
386
- | `animate-fire-flicker` | ๐Ÿ”ฅ Flicker | Rapid flame flicker |
387
-
388
- ```html
389
- <!-- Bat flying across -->
390
- <span class="animate-bat-fly animate-bat-wings">๐Ÿฆ‡</span>
391
-
392
- <!-- Butterfly flapping and drifting -->
393
- <span class="animate-butterfly animate-butterfly-drift">๐Ÿฆ‹</span>
394
-
395
- <!-- Firefly with glow -->
396
- <span class="animate-firefly animate-firefly-glow">โœจ</span>
397
-
398
- <!-- Bird flock formation (3 birds) -->
399
- <span class="animate-bird-flock">๐Ÿฆ</span>
400
- <span class="animate-bird-flock-2">๐Ÿฆ</span>
401
- <span class="animate-bird-flock-3">๐Ÿฆ</span>
402
-
403
- <!-- Dragon fire breath -->
404
- <span class="animate-dragon-fire animate-fire-flicker">๐Ÿ”ฅ</span>
405
- ```
406
-
407
- > ๐ŸŽฌ **[See all creature animations live โ†’](https://santycss.santy.in/animations.html#creature-animations)**
408
-
409
- ---
410
-
411
- ## What's New in v1.9
412
-
413
- ### ๐ŸŒŠ Scroll & Scrollbar Utilities
414
-
415
- | Class | Description |
416
- |---|---|
417
- | `scroll-smooth` | `scroll-behavior: smooth` |
418
- | `scroll-auto` | `scroll-behavior: auto` |
419
- | `scrollbar-thin` | Narrow scrollbar (webkit + standard) |
420
- | `scrollbar-dark` | Dark-themed scrollbar |
421
- | `scrollbar-hidden` | Hide scrollbar, keep scroll functionality |
422
-
423
- ### ๐ŸชŸ Glass Morphism
424
-
425
- | Class | Description |
426
- |---|---|
427
- | `glass` | Frosted glass effect (blur + semi-transparent white) |
428
- | `glass-dark` | Dark frosted glass |
429
- | `glass-light` | Light frosted glass |
430
-
431
- ### ๐ŸŒˆ Radial Gradients
432
-
433
- ```html
434
- <div class="gradient-radial-blue-purple">...</div>
435
- <div class="gradient-radial-pink-orange">...</div>
436
- ```
437
-
438
- All `gradient-radial-*` utilities use CSS `radial-gradient()` matching the existing linear gradient palette.
439
-
440
- ### ๐ŸŽฌ New Animation Utilities
441
-
442
- | Class | Description |
443
- |---|---|
444
- | `animate-spin-slow` | Slow clockwise rotation |
445
- | `animate-spin-fast` | Fast clockwise rotation |
446
- | `animate-spin-cw` | Explicit clockwise spin |
447
- | `animate-spin-ccw` | Counter-clockwise spin |
448
- | `animate-spin-xslow` | Very slow rotation |
449
- | `animate-pulse-dot` | Pulsing dot indicator |
450
- | `skill-bar-animated` | Animated skill/progress bar fill |
451
-
452
- ```html
453
- <!-- Pulsing status indicator -->
454
- <span class="animate-pulse-dot background-green-500"></span>
455
-
456
- <!-- Animated skill bar -->
457
- <div class="skill-bar-animated" style="--skill-width: 80%"></div>
458
-
459
- <!-- Counter-clockwise spinner -->
460
- <div class="animate-spin-ccw">โ†บ</div>
461
- ```
462
-
463
- ---
464
-
465
- ## What's New in v1.8
466
-
467
- ### ๐ŸŽจ SantyCSS Inspector โ€” Figma Plugin
468
-
469
- Inspect any Figma layer and get the exact SantyCSS classes in one click.
470
-
471
- **Download / Install:**
472
-
473
- > ๐ŸŒ **[Download from santycss.santy.in/docs.html](https://santycss.santy.in/docs.html#figma-plugin)** โ€” full setup guide and one-click download
474
-
475
- **Local development install:**
476
- 1. Clone this repo โ€” the plugin lives in `figma-plugin-santycss/`
477
- 2. Open **Figma Desktop** โ†’ Plugins โ†’ Development โ†’ **Import plugin from manifest**
478
- 3. Select `figma-plugin-santycss/manifest.json`
479
- 4. Select any frame/text layer โ†’ run **SantyCSS Inspector**
480
-
481
- **What it detects:**
482
-
483
- | Figma property | SantyCSS output |
484
- |---|---|
485
- | Auto-layout (horizontal) | `make-flex flex-row` |
486
- | Auto-layout (vertical) | `make-flex flex-column` |
487
- | Alignment | `justify-center`, `align-center`, `justify-between` |
488
- | Gap | `gap-16`, `gap-24` |
489
- | Padding | `add-padding-24`, `add-padding-x-16 add-padding-y-8` |
490
- | Width / Height | `set-width-320`, `set-width-full`, `set-height-fit` |
491
- | Corner radius | `round-corners-8`, `make-pill` |
492
- | Stroke | `add-border-1`, `border-color-blue-500` |
493
- | Fill / background | `background-blue-500` (nearest of 200 palette colors) |
494
- | Text color | `color-gray-900` |
495
- | Font size | `set-text-16` |
496
- | Font weight | `text-bold`, `text-semibold` |
497
- | Text align | `text-center`, `text-right` |
498
- | Drop shadow | `add-shadow-sm` / `add-shadow-lg` |
499
- | Opacity | `opacity-50` |
500
- | Clips content | `overflow-hidden` |
501
-
502
- **Plugin UI:**
503
- - Grouped classes (Layout / Spacing / Size / Typography / Color / Border / Effects)
504
- - Click any chip to copy that class
505
- - **Copy All** button โ€” copies all classes as one string
506
- - Dark mode โ€” follows Figma's theme automatically
507
-
508
- ---
509
-
510
- ## What's New in v1.7
511
-
512
- ### โ™ฟ Accessibility Utilities
513
-
514
- | Class | What it does |
515
- |---|---|
516
- | `.skip-to-content` | Skip-nav link โ€” visible on focus, hidden otherwise |
517
- | `.focus-trap` | Container for modal/drawer focus trapping |
518
- | `.aria-live-polite` / `.aria-live-assertive` | Visually hidden ARIA live regions |
519
- | `.screen-reader-only` | Visually hide but keep accessible |
520
- | `.focus-ring` / `.focus-ring-white` | Consistent focus outline utilities |
521
- | `.focus-visible-ring` | Focus ring only on keyboard navigation |
522
- | `.motion-safe-animate` | Disables animation when OS reduces motion |
523
- | `.high-contrast-border/bg/outline` | `forced-colors` media query support |
524
-
525
- ### ๐ŸŒ Internationalisation (i18n)
526
-
527
- | Class | What it does |
528
- |---|---|
529
- | `.add-padding-block-{n}` / `.add-padding-inline-{n}` | Logical padding (direction-aware) |
530
- | `.add-margin-block-{n}` / `.add-margin-inline-{n}` | Logical margin |
531
- | `.pin-block-start-0` / `.pin-inline-start-0` | Logical positioning |
532
- | `.border-block-start` / `.border-inline-start` | Logical borders |
533
- | `.make-text-vertical` | `writing-mode: vertical-rl` โ€” for CJK/Japanese |
534
- | `.make-text-vertical-up` | `writing-mode: vertical-lr` |
535
- | `.text-orientation-mixed` / `.text-orientation-upright` | Text orientation control |
536
- | `.text-direction-ltr` / `.text-direction-rtl` | Explicit `direction` control |
537
-
538
- ### ๐Ÿ“ฑ Mobile-First Components
539
-
540
- | Class | What it does |
541
- |---|---|
542
- | `.bottom-sheet` + `.open` | Slide-up panel from bottom (with safe-area support) |
543
- | `.bottom-sheet-handle` / `.bottom-sheet-body` / `.bottom-sheet-footer` | Bottom sheet parts |
544
- | `.bottom-sheet-overlay` + `.visible` | Semi-transparent backdrop |
545
- | `.swipe-carousel` + `.swipe-carousel-item` | Touch-friendly horizontal scroll carousel |
546
- | `.swipe-carousel-full` / `.peek` / `.multi` | Carousel layout variants |
547
- | `.swipe-carousel-dot` + `.active` | Progress dots |
548
- | `.pull-to-refresh` + `.pulling` / `.refreshing` | Pull-to-refresh indicator |
549
- | `.padding-safe-top/bottom/left/right/all` | `env(safe-area-inset-*)` padding |
550
-
551
- ### ๐Ÿ—“ New Components
552
-
553
- | Class | What it does |
554
- |---|---|
555
- | `.command-palette-wrap` + `.open` | VS Code-style Ctrl+K command palette overlay |
556
- | `.command-palette-input` / `.command-palette-item` | Command palette parts |
557
- | `.date-picker` / `.date-picker-grid` / `.date-picker-day` | Full calendar date picker |
558
- | `.date-picker-day.today` / `.selected` / `.in-range` | Day state modifiers |
559
-
560
- ### ๐ŸŽจ Figma Plugin
561
-
562
- The **SantyCSS Figma Plugin** is live โ€” inspect Figma designs and get the exact SantyCSS classes that match. See [What's New in v1.8](#-santycss-inspector--figma-plugin) above for full details and the download link.
563
-
564
- ---
565
-
566
- ## What's New in v1.4
567
-
568
- ### ๐Ÿงฉ VS Code IntelliSense Extension
569
-
570
- **SantyCSS IntelliSense** is now available as a VS Code extension โ€” similar to Tailwind CSS IntelliSense.
571
-
572
- - **Autocomplete** โ€” type inside `class=""` or `className=""` and get instant suggestions for all 8,500+ SantyCSS classes
573
- - **Hover docs** โ€” hover any class to see the CSS it generates
574
- - **Works in** HTML, JSX, TSX, Vue, Svelte, PHP, ERB
575
- - **Toggle command** โ€” `SantyCSS: Toggle IntelliSense` in the Command Palette
576
-
577
- Install: search **SantyCSS IntelliSense** in the Extensions panel.
578
-
579
- ---
580
-
581
- ## What's New in v1.3
582
-
583
- ### ๐ŸŽจ 70+ SVG Icons (new: Business & Finance)
584
-
585
- SantyCSS now ships **two icon systems** in `santy-icons.css`:
586
-
587
- **Brand Icons** (35) โ€” `.brand-icon` + `.brand-icon-{name}`
588
- Social media, developer tools, platforms & payment services.
589
-
590
- **Business & Finance Icons** (35) โ€” `.icon` + `.icon-{name}`
591
- 35 utility icons sourced from Font Awesome 6 Free (CC BY 4.0):
592
-
593
- | Category | Icons |
594
- |---|---|
595
- | Charts | `chart-bar` ยท `chart-column` ยท `chart-line` ยท `chart-pie` ยท `chart-area` ยท `chart-simple` |
596
- | Money | `dollar-sign` ยท `euro-sign` ยท `coins` ยท `money-bill` ยท `money-bill-wave` ยท `sack-dollar` ยท `percent` |
597
- | Business | `briefcase` ยท `handshake` ยท `building` ยท `building-columns` ยท `landmark` ยท `store` ยท `hotel` |
598
- | Documents | `file-invoice` ยท `file-invoice-dollar` ยท `receipt` ยท `credit-card` ยท `wallet` |
599
- | Commerce | `tag` ยท `tags` ยท `cash-register` ยท `calculator` ยท `piggy-bank` ยท `scale-balanced` |
600
- | Trends | `arrow-trend-up` ยท `arrow-trend-down` ยท `hand-holding-dollar` ยท `house` |
601
-
602
- ```html
603
- <!-- Include the icon stylesheet -->
604
- <link rel="stylesheet" href="santy-icons.css">
605
-
606
- <!-- Brand icon (social/dev) -->
607
- <span class="brand-icon brand-icon-github"></span>
608
- <span class="brand-icon brand-icon-react brand-icon-color-react brand-icon-xl"></span>
609
-
610
- <!-- Business & Finance icon -->
611
- <span class="icon icon-briefcase"></span>
612
- <span class="icon icon-dollar-sign icon-xl" style="color:#16a34a;"></span>
613
- <span class="icon icon-chart-line icon-32"></span>
614
- ```
615
-
616
- **Size modifiers** (same for both systems):
617
- ```
618
- .icon-xs .icon-sm .icon-md .icon-lg .icon-xl
619
- .icon-2x .icon-3x .icon-4x .icon-5x .icon-6x
620
- .icon-16 .icon-24 .icon-32 .icon-48 .icon-64
621
- ```
622
-
623
- **Animations:**
624
- ```html
625
- <span class="icon icon-coins icon-spin icon-xl" style="color:#f59e0b;"></span>
626
- ```
627
-
628
- > ๐ŸŽจ **[Icon Browser](https://santycss.santy.in/icons.html)** โ€” search, filter, and copy-click any icon
629
-
630
- ---
631
-
632
- ## What's New in v1.2
633
-
634
- ### ๐ŸŽฌ 120+ Animations (was 70+)
635
-
636
- **Scroll-Triggered** โ€” elements animate when they enter the viewport:
637
- ```html
638
- <div class="animate-on-scroll-slide-up scroll-reveal-delay-200">Reveals on scroll</div>
639
- <!-- Add IntersectionObserver once in your JS -->
640
- ```
641
-
642
- **Hover-Triggered** โ€” full animations on mouse-over, not just transforms:
643
- ```html
644
- <button class="make-button style-primary on-hover:animate-rubber-band">Hover me</button>
645
- <div class="animate-text-gradient-flow set-text-32 text-bold">Gradient Flow</div>
646
- ```
647
-
648
- **Text Animations:**
649
- ```html
650
- <h1 class="animate-typewriter">Hello, World!</h1>
651
- <h2 class="animate-text-glitch">Glitch</h2>
652
- <p class="animate-text-neon-pulse color-blue-400">Neon Pulse</p>
653
- ```
654
-
655
- **Staggered Entrances** โ€” children animate in sequence:
656
- ```html
657
- <ul class="animate-stagger-slide-up animate-stagger-children-100">
658
- <li>Item 1</li> <!-- 0ms delay -->
659
- <li>Item 2</li> <!-- 100ms delay -->
660
- <li>Item 3</li> <!-- 200ms delay -->
661
- </ul>
662
- ```
663
-
664
- **3D Animations:**
665
- ```html
666
- <div class="animate-flip-3d-y">Card flip</div>
667
- <div class="animate-morph-blob" style="width:80px;height:80px;background:#6366f1;"></div>
668
- <div class="animate-border-spin">Spinning border</div>
669
- ```
670
-
671
- **UI Feedback Animations** โ€” paired with components:
672
- ```html
673
- <div class="animate-toast-in">Toast notification</div>
674
- <div class="animate-modal-in">Modal dialog</div>
675
- <div class="animate-error-shake">Form error</div>
676
- ```
677
-
678
- **New helper classes:**
679
- ```
680
- animation-ease-bounce animation-ease-elastic animation-ease-spring
681
- animation-direction-reverse animation-direction-alternate
682
- animation-pause-on-hover animation-delay-750 animation-delay-1500
683
- animation-delay-2500 animation-speed-ultra-fast
684
- ```
685
-
686
- ---
687
-
688
- ### ๐Ÿงฉ Component Variant System (`make-*`)
689
-
690
- Replaces the old `btn btn-primary` pattern with a composable modifier system:
691
-
692
- ```html
693
- <!-- Old way -->
694
- <button class="btn btn-success btn-lg">Old</button>
695
-
696
- <!-- New way -->
697
- <button class="make-button style-success size-large shape-pill">New</button>
698
- <button class="make-button style-danger size-small shape-rounded">Delete</button>
699
- <div class="make-card style-elevated">
700
- <div class="card-body">...</div>
701
- </div>
702
- <span class="make-badge style-success">Active</span>
703
- <div class="make-alert style-warning">Watch out</div>
704
- ```
705
-
706
- **All components:** `make-button` ยท `make-card` ยท `make-badge` ยท `make-alert` ยท `make-input` ยท `make-avatar` ยท `make-spinner` ยท `make-skeleton` ยท `make-progress` ยท `make-navbar` ยท `make-tooltip` ยท `make-modal` ยท `make-drawer` ยท `make-accordion` ยท `make-dropdown`
707
-
708
- **Style modifiers:** `style-primary` ยท `style-secondary` ยท `style-success` ยท `style-danger` ยท `style-warning` ยท `style-info` ยท `style-outline` ยท `style-ghost` ยท `style-dark` ยท `style-flat` ยท `style-elevated` ยท `style-bordered`
709
-
710
- **Size modifiers:** `size-small` ยท `size-large` ยท `size-xl` ยท `size-full`
711
-
712
- **Shape modifiers:** `shape-pill` ยท `shape-rounded` ยท `shape-square`
713
-
714
- ---
715
-
716
- ### ๐ŸŒ 20 Modern CSS Utility Groups
717
-
718
- | Group | Classes |
719
- |---|---|
720
- | Container Queries | `container-query`, `cq-sm:make-flex`, `cq-md:grid-cols-3` |
721
- | Scroll & Snap | `scroll-smooth`, `scroll-snap-x`, `scroll-snap-center`, `overscroll-contain` |
722
- | Logical Properties | `add-padding-inline-{n}`, `ps-{n}`, `pe-{n}`, `ms-auto`, `text-start`, `text-end` |
723
- | Fluid Typography | `text-fluid-sm` through `text-fluid-hero` (CSS `clamp()`) |
724
- | Clip Path | `clip-circle`, `clip-hexagon`, `clip-diamond`, `clip-star`, `clip-arrow-right` |
725
- | Gradients | `gradient-radial-from-center`, `gradient-conic`, `text-gradient-blue-to-purple` |
726
- | Advanced Grid | `grid-auto-fit-min-200`, `masonry-cols-3`, `grid-area-header/sidebar/main/footer` |
727
- | Advanced Typography | `text-balance`, `text-pretty`, `text-clamp-1/2/3`, `drop-cap`, `font-tabular-nums` |
728
- | Cursor Utilities | 30 cursor types including `cursor-cell`, `cursor-copy`, `cursor-resize-ns` |
729
- | Dynamic Viewport | `set-height-dvh`, `set-height-svh`, `set-height-lvh`, `set-min-height-dvh` |
730
- | Color Mix / Opacity | `background-blue-500/50`, `background-white/75`, `background-mix-blue-red-50` |
731
- | Semantic Z-index | `z-modal: 400`, `z-tooltip: 600`, `z-toast: 700`, `isolate` |
732
- | View Transitions | `view-transition-fade`, `view-transition-slide` (View Transitions API) |
733
- | Size Utilities | `set-size-16` through `set-size-200`, `set-size-full/screen/fit` |
734
- | Print Utilities | `print-hidden`, `print-only`, `print-break-before`, `print-show-links` |
735
- | Subgrid | `grid-cols-subgrid`, `span-col-subgrid-3` |
736
- | Math / Calc | `set-width-calc-100-minus-64`, `set-height-calc-screen-minus-80`, `set-max-width-readable` |
737
- | Pointer / Touch | `touch-none`, `touch-pan-x`, `touch-manipulation`, `will-change-transform` |
738
- | @layer | `@layer santy-base, santy-utilities, santy-components, santy-overrides` |
739
- | 3D Transform | `perspective-*`, `rotate-3d`, `transform-origin-*` (extended) |
740
-
741
- ---
742
-
743
- ### ๐Ÿค– Built for the AI Era
744
-
745
- SantyCSS ships a **context file** (`santycss.context.md`) โ€” paste it into Claude, GPT-4, or Cursor's system prompt and the AI generates SantyCSS instead of Tailwind, every time:
746
-
747
- ```
748
- Paste santycss.context.md โ†’ AI writes SantyCSS instead of Tailwind
749
- ```
750
-
751
- The **built-in AI Generator** converts plain English โ†’ SantyCSS classes in the browser (no API key):
752
-
753
- > "a centered flex container with green background and white text and gap"
754
- > โ†’ `make-flex align-center justify-center background-green-500 color-white gap-16`
755
-
756
- ---
757
-
758
- ## Webflow
759
-
760
- Use SantyCSS on **[Webflow](https://webflow.com/)** without a build step: add the CDN `<link>` in **Project settings โ†’ Custom Code โ†’ Head**, then enter utility classes in the **Style โ†’ Selector** field on any element.
761
-
762
- - **[Webflow guide + copy-paste snippets + sidebar class index](https://santycss.santy.in/webflow.html)** โ€” head/footer code, optional split bundles, scroll-animation helper, design tokens.
763
-
764
- ---
765
-
766
- ## Installation
767
-
768
- ```bash
769
- npm install santycss
770
- ```
771
-
772
- **CDN โ€” drop in and go (recommended for beginners):**
773
- ```html
774
- <!-- Base utilities + components, no extended variants/animations -->
775
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-start.css">
776
- ```
777
-
778
- **CDN โ€” full responsive coverage:**
779
- ```html
780
- <!-- Core utilities (slimmed) -->
781
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-core.css">
782
- <!-- xl:, xxl:, on-wide:, peer-*, group-*, print:, motion-*, RTL -->
783
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-variants.css">
784
- ```
785
-
786
- **CDN โ€” PostCSS/Vite purge workflow (teams):**
787
- ```html
788
- <!-- Full bundle โ€” purge down to ~15KB with PostCSS/Vite -->
789
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy.min.css">
790
- ```
791
-
792
- **Import in JS/TS (React, Vue, Next, Nuxt, Vite):**
793
- ```js
794
- import 'santycss/css/start'; // drop-in: base utilities + components
795
- import 'santycss/css/core'; // utilities only (slimmed, no extended variants)
796
- import 'santycss/css/variants'; // xl:, peer-*, group-*, print:, motion-*, RTL
797
- import 'santycss/css'; // full bundle
798
- import 'santycss/css/components'; // component shortcuts
799
- import 'santycss/css/animations'; // animations only
800
- import 'santycss/css/email'; // email-safe CSS
801
- ```
802
-
803
- **PostCSS:**
804
- ```js
805
- // postcss.config.js
806
- module.exports = {
807
- plugins: [require('santycss/postcss')]
808
- };
809
- ```
810
-
811
- **Vite plugin:**
812
- ```js
813
- // vite.config.js
814
- import santyCSS from 'santycss/vite';
815
- export default { plugins: [santyCSS()] };
816
- ```
817
-
818
- ---
819
-
820
- ## Core Naming Conventions
821
-
822
- | Pattern | Example | Meaning |
823
- |---|---|---|
824
- | `add-{prop}-{n}` | `add-padding-24` | Additive โ€” border, padding, margin, shadow |
825
- | `make-{val}` | `make-flex`, `make-circle` | Display / behaviour |
826
- | `set-{prop}-{val}` | `set-text-24`, `set-width-320` | Dimension / size setter |
827
- | `pin-{side}-{n}` | `pin-top-0`, `pin-center` | Absolute / fixed positioning |
828
- | `on-hover:{class}` | `on-hover:scale-110` | State / responsive prefix |
829
- | `md:{class}` | `md:grid-cols-3` | Responsive breakpoint |
830
- | `make-button style-* size-* shape-*` | `make-button style-success size-large shape-pill` | Component variant system |
831
-
832
- ---
833
-
834
- ## Quick Examples
835
-
836
- **Responsive hero:**
837
- ```html
838
- <section class="make-flex flex-column align-center justify-center text-center add-padding-y-80 background-gray-50">
839
- <h1 class="set-text-56 text-bold color-gray-900 add-margin-bottom-16 md:set-text-40 on-mobile:set-text-32">
840
- Build faster
841
- </h1>
842
- <p class="set-text-20 color-gray-500 line-height-relaxed add-margin-bottom-32">
843
- Plain-English CSS that reads like you wrote it.
844
- </p>
845
- <a href="#" class="make-button style-primary size-large shape-pill on-hover:scale-105 transition-all">
846
- Get started โ†’
847
- </a>
848
- </section>
849
- ```
850
-
851
- **Card with hover effect:**
852
- ```html
853
- <div class="make-card style-bordered add-border-left-4 border-color-blue-500 on-hover:scale-105 transition-all cursor-pointer add-padding-28 add-shadow-md round-corners-16">
854
- <h3 class="set-text-20 text-bold color-gray-900 add-margin-bottom-8">Card Title</h3>
855
- <p class="set-text-14 color-gray-500 line-height-relaxed">Card description.</p>
856
- </div>
857
- ```
858
-
859
- **Dark-mode card grid:**
860
- ```html
861
- <div class="make-grid grid-cols-3 gap-24 on-mobile:grid-cols-1 md:grid-cols-2">
862
- <div class="make-card style-elevated background-white dark:background-gray-800 round-corners-16 add-padding-24">
863
- <span class="make-badge style-primary add-margin-bottom-12">New</span>
864
- <h4 class="set-text-18 text-semibold color-gray-900 dark:color-white">Feature</h4>
865
- <p class="set-text-14 color-gray-500 dark:color-gray-400 line-height-relaxed">Description.</p>
866
- </div>
867
- </div>
868
- ```
869
-
870
- **Scroll-triggered stagger:**
871
- ```html
872
- <div class="make-grid grid-cols-3 gap-24 animate-stagger-slide-up animate-stagger-children-200">
873
- <div class="make-card style-bordered">Card 1</div>
874
- <div class="make-card style-bordered">Card 2</div>
875
- <div class="make-card style-bordered">Card 3</div>
876
- </div>
877
- <script>
878
- new IntersectionObserver(entries => {
879
- entries.forEach(e => { if(e.isIntersecting) e.target.classList.add('is-visible'); });
880
- }, { threshold: 0.15 }).observe(
881
- ...document.querySelectorAll('[class*="animate-on-scroll"],[class*="scroll-reveal"]')
882
- );
883
- </script>
884
- ```
885
-
886
- ---
887
-
888
- ## Spacing & Sizing Reference
889
-
890
- **Spacing values (n):** 0โ€“50 every 1px ยท 52โ€“200 every 4px ยท plus 256, 320, 384, 448, 512, 640, 768, 1024
891
-
892
- | Category | Classes |
893
- |---|---|
894
- | Padding | `add-padding-{n}` ยท `-top-` ยท `-bottom-` ยท `-left-` ยท `-right-` ยท `-x-` ยท `-y-{n}` |
895
- | Margin | `add-margin-{n}` ยท `-top-` ยท `-bottom-` ยท `-left-` ยท `-right-` ยท `-x-` ยท `-y-{n}` ยท `-x-auto` |
896
- | Gap | `gap-{n}` ยท `gap-x-{n}` ยท `gap-y-{n}` |
897
- | Width | `set-width-{n}` ยท `-full` ยท `-screen` ยท `-fit` |
898
- | Height | `set-height-{n}` ยท `-full` ยท `-screen` ยท `-dvh` ยท `-svh` ยท `-lvh` |
899
- | Text size | `set-text-{n}` (8โ€“144px) |
900
-
901
- ---
902
-
903
- ## Colors
904
-
905
- 20 color families ร— 10 shades (50โ€“950):
906
-
907
- `blue` `red` `green` `yellow` `purple` `pink` `orange` `gray` `indigo` `cyan` `teal` `rose` `violet` `emerald` `amber` `lime` `sky` `slate` `zinc` `neutral` `stone`
908
-
909
- ```html
910
- <p class="color-blue-500">Text</p>
911
- <div class="background-emerald-100 border-color-emerald-400 add-border-2">Card</div>
912
- ```
913
-
914
- ---
915
-
916
- ## Responsive Breakpoints
917
-
918
- ```
919
- sm:{class} 640px+
920
- md:{class} 768px+
921
- lg:{class} 1024px+
922
- xl:{class} 1280px+
923
- on-mobile:{class} max 767px
924
- on-tablet:{class} 768โ€“1023px
925
- on-desktop:{class} 1024px+
926
- ```
927
-
928
- ---
929
-
930
- ## CSS Design Tokens
931
-
932
- Override to brand your entire UI with zero rebuilding:
933
-
934
- ```css
935
- :root {
936
- --santy-primary: #3b82f6;
937
- --santy-secondary: #8b5cf6;
938
- --santy-accent: #10b981;
939
- --santy-radius: 0.5rem;
940
- --santy-font: 'Inter', system-ui, sans-serif;
941
- }
942
- ```
943
-
944
- ---
945
-
946
- ## Component Classes (Legacy)
947
-
948
- The original `.btn`, `.card`, `.badge` classes still work and are fully supported:
949
-
950
- ```html
951
- <button class="btn btn-primary btn-lg">Button</button>
952
- <div class="card card-body">Card</div>
953
- <span class="badge badge-success">Active</span>
954
- <div class="alert alert-warning">Warning</div>
955
- ```
956
-
957
- For new projects, the **Component Variant System** (`make-button style-*`) is recommended.
958
-
959
- ---
960
-
961
- ## Files in the Package
962
-
963
- | File | Size | Contents |
964
- |---|---|---|
965
- | `dist/santy-start.css` | 527KB | **CDN drop-in** โ€” base utilities + components, no extended variants/animations |
966
- | `dist/santy-core.css` | 310KB | Utilities only โ€” base + on-mobile/tablet/desktop/md + hover/focus |
967
- | `dist/santy-variants.css` | 287KB | Extended โ€” xl:, xxl:, on-wide:, peer-*, group-*, print:, motion-*, RTL |
968
- | `dist/santy-components.css` | 217KB | Component shortcuts only |
969
- | `dist/santy-animations.css` | 53KB | 120+ animations only |
970
- | `dist/santy.css` | 868KB | Everything โ€” full unminified bundle |
971
- | `dist/santy.min.css` | 758KB | Minified full bundle (purge with PostCSS/Vite โ†’ ~15KB) |
972
- | `dist/santy-email.css` | 13KB | Email-safe CSS for HTML email |
973
-
974
- ---
975
-
976
- ## Tree-shaking / Purge
977
-
978
- Keep only the classes you use:
979
-
980
- ```bash
981
- npx santycss purge --input ./src --output ./dist/santy.purged.css
982
- ```
983
-
984
- Or in Node.js:
985
-
986
- ```js
987
- const { purge } = require('santycss/purge');
988
- purge({ input: './src', output: './dist/santy.purged.css' });
989
- ```
990
-
991
- ---
992
-
993
- ## LLM / AI Integration
994
-
995
- ```
996
- npm show santycss homepage
997
- โ†’ https://santycss.santy.in
998
- ```
999
-
1000
- The file `santycss.context.md` (in the GitHub repo) is a ready-made system prompt for LLMs. Paste it into your AI tool of choice and it will generate SantyCSS class names instead of Tailwind utilities.
1001
-
1002
- ---
1003
-
1004
- ## Links
1005
-
1006
- - ๐ŸŒ Website: [santycss.santy.in](https://santycss.santy.in)
1007
- - ๐Ÿ“– Class Reference: [santycss.santy.in/classes.html](https://santycss.santy.in/classes.html)
1008
- - ๐ŸŒŠ Webflow: [santycss.santy.in/webflow.html](https://santycss.santy.in/webflow.html)
1009
- - ๐ŸŽฌ Animations: [santycss.santy.in/animations.html](https://santycss.santy.in/animations.html)
1010
- - ๐ŸŽฎ Live Demo: [santycss.santy.in/demo.html](https://santycss.santy.in/demo.html)
1011
- - ๐Ÿ“ฆ npm Docs: [santycss.santy.in/docs.html](https://santycss.santy.in/docs.html)
1012
- - ๐Ÿ› Issues: [github.com/ChintuSanty/santyCSS/issues](https://github.com/ChintuSanty/santyCSS/issues)
1013
- - ๐Ÿ’ฌ Discussions: [GitHub Discussions](https://github.com/ChintuSanty/santyCSS/discussions/1)
1014
-
1015
- ---
1016
-
1017
- ## License
1018
-
1019
- MIT ยฉ [Santy](https://github.com/ChintuSanty)
167
+ ## What's New in v2.4.7
168
+
169
+ ### ๐ŸŽจ 2078 Essential UI Icons (+78 new โ€” final batch)
170
+
171
+ 78 final icons completing the Essential UI library โ€” USB drives, volume controls, wallet, webcam, wifi, windows, wrench, x/close variants, and zoom.
172
+
173
+ ```html
174
+ <span class="icon icon-volume-up-fill icon-size-xl" style="color:#3b82f6;"></span>
175
+ <span class="icon icon-wifi icon-size-xl" style="color:#10b981;"></span>
176
+ <span class="icon icon-wrench-adjustable-circle-fill icon-size-xl" style="color:#6366f1;"></span>
177
+ <span class="icon icon-zoom-in icon-size-xl" style="color:#f59e0b;"></span>
178
+ ```
179
+
180
+ **New icons (78):**
181
+
182
+ | Group | Icons |
183
+ |---|---|
184
+ | USB | `usb-drive` `usb-drive-fill` `usb-fill` `usb-micro` `usb-micro-fill` `usb-mini` `usb-mini-fill` `usb-plug` `usb-plug-fill` `usb-symbol` |
185
+ | Misc | `valentine` `valentine2` `vector-pen` `view-list` `view-stacked` `vignette` `vimeo` `vinyl` `vinyl-fill` `virus` `virus2` `voicemail` `vr` |
186
+ | Volume | `volume-down` `volume-down-fill` `volume-mute` `volume-mute-fill` `volume-off` `volume-off-fill` `volume-up` `volume-up-fill` |
187
+ | Wallet & Watch | `wallet` `wallet-fill` `wallet2` `watch` `water` |
188
+ | Camera & Comms | `webcam` `webcam-fill` `wechat` `whatsapp` |
189
+ | Wifi | `wifi` `wifi-1` `wifi-2` `wifi-off` |
190
+ | Misc | `wikipedia` `wind` `windows` `wordpress` `xbox` `yelp` `yin-yang` `youtube` |
191
+ | Window | `window` `window-dash` `window-desktop` `window-dock` `window-fullscreen` `window-plus` `window-sidebar` `window-split` `window-stack` `window-x` |
192
+ | Wrench | `wrench` `wrench-adjustable` `wrench-adjustable-circle` `wrench-adjustable-circle-fill` |
193
+ | Close / X | `x` `x-circle` `x-circle-fill` `x-diamond` `x-diamond-fill` `x-lg` `x-octagon` `x-octagon-fill` `x-square` `x-square-fill` |
194
+ | Zoom | `zoom-in` `zoom-out` |
195
+
196
+ ---
197
+
198
+ ## What's New in v2.4.6
199
+
200
+ ### ๐ŸŽจ 2000 Essential UI Icons (1000 new in this release)
201
+
202
+ 1000 new icons covering file types, folders, filters, gears, globes, hearts, houses, journals, media controls, people, phones, shields, signs, terminals, trash, and much more.
203
+
204
+ ```html
205
+ <span class="icon icon-heart-pulse-fill icon-size-xl" style="color:#ef4444;"></span>
206
+ <span class="icon icon-person-fill-check icon-size-xl" style="color:#10b981;"></span>
207
+ <span class="icon icon-shield-fill-check icon-size-xl" style="color:#3b82f6;"></span>
208
+ <span class="icon icon-rocket-takeoff-fill icon-size-xl" style="color:#8b5cf6;"></span>
209
+ ```
210
+
211
+ **New icons include:** file-ruled, file-slides, file-spreadsheet, file-text, file-word, file-x, file-zip, files, files-alt, filetype-aac, filetype-ai, filetype-bmp, filetype-cs, filetype-css, filetype-csv, filetype-doc, filetype-docx, filetype-exe, filetype-gif, filetype-heic, filetype-html, filetype-java, filetype-jpg, filetype-js, filetype-json, filetype-jsx, filetype-key, filetype-m4p, filetype-md, filetype-mdx, filetype-mov, filetype-mp3, filetype-mp4, filetype-otf, filetype-pdf, filetype-php, filetype-png, filetype-ppt, filetype-pptx, filetype-psd, filetype-py, filetype-raw, filetype-rb, filetype-sass, filetype-scss, filetype-sh, filetype-sql, filetype-svg, filetype-tiff, filetype-tsx, filetype-ttf, filetype-txt, filetype-wav, filetype-woff, filetype-xls, filetype-xlsx, filetype-xml, filetype-yml, film, filter, fingerprint, fire, flag, flask, flask-florence, floppy, floppy2, flower1, flower2, flower3, folder, folder-check, folder-fill, folder-minus, folder-plus, folder-symlink, folder-x, folder2, folder2-open, fonts, fork-knife, forward, fuel-pump, fullscreen, funnel, gear, gear-fill, gear-wide, gear-wide-connected, gem, gender-ambiguous, gender-female, gender-male, gender-neuter, gender-trans, geo, geo-alt, gift, git, github, gitlab, globe, globe-americas, globe-asia-australia, globe-central-south-asia, globe-europe-africa, globe2, google, google-play, gpu-card, graph-down, graph-up, grid, grip-horizontal, grip-vertical, h-circle, h-square, hammer, hand-index, hand-index-thumb, hand-thumbs-down, hand-thumbs-up, handbag, hash, hdd, hdd-network, hdd-rack, hdd-stack, hdmi, headphones, headset, headset-vr, heart, heart-arrow, heart-pulse, heartbreak, hearts, heptagon, hexagon, highlighter, highlights, hospital, hourglass, house (all variants), houses, hr, hurricane, hypnotize, image, images, inbox, inboxes, incognito, indent, infinity, info, input-cursor, instagram, javascript, journal (all variants), joystick, justify, kanban, key, keyboard, ladder, lamp, laptop, layer-backward, layer-forward, layers, layout-sidebar, layout-split, layout-text-sidebar, layout-text-window, layout-three-columns, layout-wtf, leaf, life-preserver, lightbulb, lightning, link, linkedin, list (all variants), lock, luggage, lungs, magic, magnet, mailbox, map, markdown, mask, mastodon, megaphone, memory, menu-app, menu-button, mic, microsoft, microsoft-teams, modem, moon, mortarboard, motherboard, mouse (all variants), music-note, newspaper, nintendo-switch, node-minus, node-plus, nut, nvidia, nvme, octagon, openai, palette, paperclip, pass, passport, patch-check, patch-exclamation, patch-minus, patch-plus, patch-question, pause, paypal, pc, pci-card, peace, pen, pencil, pentagon, people, person (all 50+ variants), phone, pie-chart, piggy-bank, pin, pip, play, plug, plus, postage, postcard, power, printer, projector, puzzle, qr-code, question, quote, r-circle, radar, radioactive, rainbow, receipt, reception (0-4), record, recycle, reddit, repeat, reply, rewind, robot, rocket, router, rss, rulers, safe, save, scissors, search, send (all variants), server, share, shield (all variants), sign (all road signs), sim, skip-backward, skip-end, skip-forward, skip-start, skype, slack, slash, sliders, smartwatch, snapchat, snow, sort-alpha, sort-down, sort-numeric, sort-up, soundwave, speaker, speedometer, spotify, square, star, stickies, sticky, stop, stopwatch, strava, stripe, suit (club/diamond/heart/spade), suitcase, sun, sunrise, sunset, table, tablet, tag, taxi-front, telegram, telephone (all variants), terminal, text-center, text-indent, textarea, thermometer, threads, three-dots, thunderbolt, ticket, tiktok, toggle, tools, tornado, train-freight-front, train-front, train-lightrail-front, translate, transparency, trash (all variants), tree, trello, triangle, trophy, truck, tv, twitch, twitter, twitter-x, type (all heading variants), typescript, ubuntu, ui-checks, ui-radios, umbrella, union, unity, universal-access, unlock, upc, upload, usb, usb-c, and 50+ more fill variants.
212
+
213
+ ---
214
+
215
+ ## What's New in v2.4.5
216
+
217
+ ### ๐ŸŽจ 1000 Essential UI Icons + Scrollable Grid + Sub-filters
218
+
219
+ 600 new icons added โ€” calendars (all variants), camera & media, chat & messaging, cloud & weather, clipboard, checks & chevrons, database & devices, emoji, envelopes, files & documents, and more.
220
+
221
+ The icon browser now features:
222
+ - **Scrollable Essential UI grid** โ€” browse 1000 icons in a fixed-height scrollable area
223
+ - **Sub-filters** โ€” filter by category: Numbers, Arrows, Calendar, Camera, Chat, Cloud, Database, Emoji, Files, Shapes, Shopping
224
+
225
+ ```html
226
+ <span class="icon icon-chat-left-text-fill icon-size-xl" style="color:#6366f1;"></span>
227
+ <span class="icon icon-cloud-lightning-rain-fill icon-size-xl" style="color:#0ea5e9;"></span>
228
+ <span class="icon icon-file-earmark-pdf-fill icon-size-xl" style="color:#ef4444;"></span>
229
+ <span class="icon icon-emoji-laughing-fill icon-size-xl" style="color:#f59e0b;"></span>
230
+ ```
231
+
232
+ **New icons (600):**
233
+
234
+ | Group | Icons |
235
+ |---|---|
236
+ | Calendar variants | `calendar2-fill` `calendar2-heart` `calendar2-minus` `calendar2-month` `calendar2-plus` `calendar2-range` `calendar2-week` `calendar2-x` `calendar3` `calendar3-event` `calendar3-fill` `calendar3-range` `calendar3-week` `calendar4` `calendar4-event` `calendar4-range` `calendar4-week` (+ fill variants) |
237
+ | Camera & Media | `camera` `camera-fill` `camera-reels` `camera-video` `camera-video-off` `camera2` `cassette` `cast` |
238
+ | Cart & Shopping | `cart` `cart-check` `cart-dash` `cart-fill` `cart-plus` `cart-x` `cart2` `cart3` `cart4` |
239
+ | Chat & Messaging | `chat` `chat-dots` `chat-fill` `chat-heart` `chat-left` `chat-left-dots` `chat-left-fill` `chat-left-heart` `chat-left-quote` `chat-left-text` `chat-quote` `chat-right` `chat-right-dots` `chat-right-fill` `chat-right-heart` `chat-right-quote` `chat-right-text` `chat-square` `chat-square-dots` `chat-square-fill` `chat-square-heart` `chat-square-quote` `chat-square-text` `chat-text` (+ fill variants) |
240
+ | Check & Shapes | `check` `check-all` `check-circle` `check-lg` `check-square` `check2` `check2-all` `check2-circle` `check2-square` |
241
+ | Chevrons | `chevron-bar-contract` `chevron-bar-down` `chevron-bar-expand` `chevron-bar-left` `chevron-bar-right` `chevron-bar-up` `chevron-compact-down` `chevron-compact-left` `chevron-compact-right` `chevron-compact-up` `chevron-contract` `chevron-double-down` `chevron-double-left` `chevron-double-right` `chevron-double-up` `chevron-down` `chevron-expand` `chevron-left` `chevron-right` `chevron-up` |
242
+ | Clipboard | `clipboard` `clipboard-check` `clipboard-data` `clipboard-fill` `clipboard-heart` `clipboard-minus` `clipboard-plus` `clipboard-pulse` `clipboard-x` `clipboard2` (+ all clipboard2 variants, + fill variants) |
243
+ | Clock | `clock` `clock-fill` `clock-history` |
244
+ | Cloud & Weather | `cloud` `cloud-arrow-down` `cloud-arrow-up` `cloud-check` `cloud-download` `cloud-drizzle` `cloud-fill` `cloud-fog` `cloud-fog2` `cloud-hail` `cloud-haze` `cloud-haze2` `cloud-lightning` `cloud-lightning-rain` `cloud-minus` `cloud-moon` `cloud-plus` `cloud-rain` `cloud-rain-heavy` `cloud-slash` `cloud-sleet` `cloud-snow` `cloud-sun` `cloud-upload` `clouds` `cloudy` (+ fill variants) |
245
+ | Currency | `currency-bitcoin` `currency-dollar` `currency-euro` `currency-exchange` `currency-pound` `currency-rupee` `currency-yen` |
246
+ | Database & Device | `database` `database-add` `database-check` `database-dash` `database-down` `database-exclamation` `database-fill` (+ all database-fill-* variants) `device-hdd` `device-ssd` |
247
+ | Emoji | `emoji-angry` `emoji-astonished` `emoji-dizzy` `emoji-expressionless` `emoji-frown` `emoji-grimace` `emoji-grin` `emoji-heart-eyes` `emoji-kiss` `emoji-laughing` `emoji-neutral` `emoji-smile` `emoji-smile-upside-down` `emoji-sunglasses` `emoji-surprise` `emoji-tear` `emoji-wink` (+ fill variants) |
248
+ | Envelope | `envelope` `envelope-arrow-down` `envelope-arrow-up` `envelope-at` `envelope-check` `envelope-dash` `envelope-exclamation` `envelope-fill` `envelope-heart` `envelope-open` `envelope-open-heart` `envelope-paper` `envelope-paper-heart` `envelope-plus` `envelope-slash` `envelope-x` (+ fill variants) |
249
+ | File docs | `file` `file-arrow-down` `file-arrow-up` `file-bar-graph` `file-binary` `file-break` `file-check` `file-code` `file-diff` `file-earmark` (+ all earmark variants) `file-easel` `file-excel` `file-fill` `file-font` `file-image` `file-lock` `file-lock2` `file-medical` `file-minus` `file-music` `file-pdf` `file-person` `file-play` `file-plus` `file-post` `file-ppt` `file-richtext` (+ fill variants) |
250
+
251
+ ---
252
+
253
+ ## What's New in v2.4.4
254
+
255
+ ### ๐ŸŽฏ 400 Essential UI Icons (+100 new)
256
+
257
+ 100 more icons โ€” boxes, buildings, browsers, calendars, brightness controls and more.
258
+
259
+ ```html
260
+ <span class="icon icon-building-fill icon-size-2x" style="color:#6366f1;"></span>
261
+ <span class="icon icon-calendar-heart-fill icon-size-xl" style="color:#ec4899;"></span>
262
+ <span class="icon icon-briefcase-fill icon-size-xl" style="color:#3b82f6;"></span>
263
+ <span class="icon icon-brightness-high-fill icon-size-xl" style="color:#f59e0b;"></span>
264
+ <span class="icon icon-bug-fill icon-size-xl" style="color:#ef4444;"></span>
265
+ ```
266
+
267
+ **New icons (100):**
268
+
269
+ | Group | Icons |
270
+ |---|---|
271
+ | Boxes | `box2-fill` `box2-heart` `box2-heart-fill` `boxes` |
272
+ | Dev | `braces` `braces-asterisk` `bricks` `bug` `bug-fill` |
273
+ | Work | `briefcase` `briefcase-fill` `bullseye` |
274
+ | Display | `brightness-alt-high` `brightness-alt-high-fill` `brightness-alt-low` `brightness-alt-low-fill` `brightness-high` `brightness-high-fill` `brightness-low` `brightness-low-fill` `brilliance` |
275
+ | Media | `broadcast` `broadcast-pin` |
276
+ | Browsers | `browser-chrome` `browser-edge` `browser-firefox` `browser-safari` |
277
+ | Design | `brush` `brush-fill` `bucket` `bucket-fill` |
278
+ | Buildings | `building` `building-add` `building-check` `building-dash` `building-down` `building-exclamation` `building-fill` `building-fill-add` `building-fill-check` `building-fill-dash` `building-fill-down` `building-fill-exclamation` `building-fill-gear` `building-fill-lock` `building-fill-slash` `building-fill-up` `building-fill-x` `building-gear` `building-lock` `building-slash` `building-up` `building-x` `buildings` `buildings-fill` |
279
+ | Transport | `bus-front` `bus-front-fill` |
280
+ | Legal | `c-circle` `c-circle-fill` `c-square` `c-square-fill` |
281
+ | Food | `cake` `cake-fill` `cake2` `cake2-fill` |
282
+ | Tools | `calculator` `calculator-fill` |
283
+ | Calendars | `calendar` `calendar-check` `calendar-check-fill` `calendar-date` `calendar-date-fill` `calendar-day` `calendar-day-fill` `calendar-event` `calendar-event-fill` `calendar-fill` `calendar-heart` `calendar-heart-fill` `calendar-minus` `calendar-minus-fill` `calendar-month` `calendar-month-fill` `calendar-plus` `calendar-plus-fill` `calendar-range` `calendar-range-fill` `calendar-week` `calendar-week-fill` `calendar-x` `calendar-x-fill` `calendar2` `calendar2-check` `calendar2-check-fill` `calendar2-date` `calendar2-date-fill` `calendar2-day` `calendar2-day-fill` `calendar2-event` `calendar2-event-fill` |
284
+
285
+ ---
286
+
287
+ ## What's New in v2.4.3
288
+
289
+ ### ๐ŸŽฏ 300 Essential UI Icons (+100 new)
290
+
291
+ 100 more icons added โ€” ban/block, charts, baskets, battery, books, bookmarks, boxes, borders and more.
292
+
293
+ ```html
294
+ <span class="icon icon-ban-fill icon-size-xl" style="color:#ef4444;"></span>
295
+ <span class="icon icon-bar-chart-fill icon-size-2x" style="color:#3b82f6;"></span>
296
+ <span class="icon icon-bookmark-heart-fill icon-size-xl" style="color:#ec4899;"></span>
297
+ <span class="icon icon-box-arrow-up-right icon-size-lg"></span>
298
+ <span class="icon icon-battery-full icon-size-xl" style="color:#22c55e;"></span>
299
+ ```
300
+
301
+ **New icons (100):**
302
+
303
+ | Group | Icons |
304
+ |---|---|
305
+ | Block / Medical | `ban` `ban-fill` `bandaid` `bandaid-fill` |
306
+ | Finance | `bank` `bank2` `bar-chart` `bar-chart-fill` `bar-chart-line` `bar-chart-line-fill` `bar-chart-steps` |
307
+ | Shopping | `basket` `basket-fill` `basket2` `basket2-fill` `basket3` `basket3-fill` |
308
+ | Device | `battery` `battery-charging` `battery-full` `battery-half` `battery-low` |
309
+ | Science / Social | `beaker` `beaker-fill` `behance` `bing` `bluesky` `bluetooth` |
310
+ | Notifications | `bell` `bell-fill` `bell-slash` `bell-slash-fill` |
311
+ | Design | `bezier` `bezier2` `binoculars` `binoculars-fill` `bounding-box` `bounding-box-circles` |
312
+ | Transport | `bicycle` |
313
+ | Text | `blockquote-left` `blockquote-right` `body-text` |
314
+ | Books | `book` `book-fill` `book-half` `bookmarks` `bookmarks-fill` `bookshelf` |
315
+ | Bookmarks | `bookmark` `bookmark-check` `bookmark-check-fill` `bookmark-dash` `bookmark-dash-fill` `bookmark-fill` `bookmark-heart` `bookmark-heart-fill` `bookmark-plus` `bookmark-plus-fill` `bookmark-star` `bookmark-star-fill` `bookmark-x` `bookmark-x-fill` |
316
+ | Media | `boombox` `boombox-fill` |
317
+ | Framework | `bootstrap` `bootstrap-fill` `bootstrap-reboot` |
318
+ | Border | `border` `border-all` `border-bottom` `border-center` `border-inner` `border-left` `border-middle` `border-outer` `border-right` `border-style` `border-top` `border-width` |
319
+ | Boxes | `box` `box-arrow-down` `box-arrow-down-left` `box-arrow-down-right` `box-arrow-in-down` `box-arrow-in-down-left` `box-arrow-in-down-right` `box-arrow-in-left` `box-arrow-in-right` `box-arrow-in-up` `box-arrow-in-up-left` `box-arrow-in-up-right` `box-arrow-left` `box-arrow-right` `box-arrow-up` `box-arrow-up-left` `box-arrow-up-right` `box-fill` `box-seam` `box-seam-fill` `box2` |
320
+
321
+ ---
322
+
323
+ ## What's New in v2.4.2
324
+
325
+ ### ๐ŸŽฏ 200 Essential UI Icons (+100 new)
326
+
327
+ Another 100 icons added to the **Essential UI** category โ€” arrows (all directions, variants), aspect ratio, badges, bags, balloons, backpacks and more.
328
+
329
+ ```html
330
+ <span class="icon icon-arrow-repeat icon-size-xl" style="color:#3b82f6;"></span>
331
+ <span class="icon icon-arrows-fullscreen icon-size-lg"></span>
332
+ <span class="icon icon-bag-heart-fill icon-size-2x" style="color:#ef4444;"></span>
333
+ <span class="icon icon-award-fill icon-size-2x" style="color:#f59e0b;"></span>
334
+ <span class="icon icon-balloon-heart icon-size-xl" style="color:#ec4899;"></span>
335
+ ```
336
+
337
+ **New icons (100):**
338
+
339
+ | Group | Icons |
340
+ |---|---|
341
+ | Arrows (more) | `arrow-left-right` `arrow-left-short` `arrow-left-square` `arrow-left-square-fill` `arrow-repeat` `arrow-return-left` `arrow-return-right` `arrow-right` `arrow-right-circle` `arrow-right-circle-fill` `arrow-right-short` `arrow-right-square` `arrow-right-square-fill` `arrow-through-heart` `arrow-through-heart-fill` `arrow-up` `arrow-up-circle` `arrow-up-circle-fill` `arrow-up-left` `arrow-up-left-circle` `arrow-up-left-circle-fill` `arrow-up-left-square` `arrow-up-left-square-fill` `arrow-up-right` `arrow-up-right-circle` `arrow-up-right-circle-fill` `arrow-up-right-square` `arrow-up-right-square-fill` `arrow-up-short` `arrow-up-square` `arrow-up-square-fill` |
342
+ | Arrows (set) | `arrows` `arrows-angle-contract` `arrows-angle-expand` `arrows-collapse` `arrows-collapse-vertical` `arrows-expand` `arrows-expand-vertical` `arrows-fullscreen` `arrows-move` `arrows-vertical` |
343
+ | UI | `aspect-ratio` `aspect-ratio-fill` `asterisk` `at` `award` `award-fill` `back` `backspace` `backspace-fill` `backspace-reverse` `backspace-reverse-fill` |
344
+ | Bags & Packs | `backpack` `backpack-fill` `backpack2` `backpack2-fill` `backpack3` `backpack3-fill` `backpack4` `backpack4-fill` `bag` `bag-check` `bag-check-fill` `bag-dash` `bag-dash-fill` `bag-fill` `bag-heart` `bag-heart-fill` `bag-plus` `bag-plus-fill` `bag-x` `bag-x-fill` |
345
+ | Badges | `badge-3d` `badge-3d-fill` `badge-4k` `badge-4k-fill` `badge-8k` `badge-8k-fill` `badge-ad` `badge-ad-fill` `badge-ar` `badge-ar-fill` `badge-cc` `badge-cc-fill` `badge-hd` `badge-hd-fill` `badge-sd` `badge-sd-fill` `badge-tm` `badge-tm-fill` `badge-vo` `badge-vo-fill` `badge-vr` `badge-vr-fill` `badge-wc` `badge-wc-fill` |
346
+ | Fun | `balloon` `balloon-fill` `balloon-heart` `balloon-heart-fill` |
347
+
348
+ ---
349
+
350
+ ## What's New in v2.4.1
351
+
352
+ ### ๐ŸŽฏ 100 Essential UI Icons
353
+
354
+ New category โ€” **Essential UI** โ€” adds 100 carefully selected icons to `santy-icons.css`. Use them with the same `.icon` system.
355
+
356
+ ```html
357
+ <link rel="stylesheet" href="santy-icons.css">
358
+
359
+ <!-- Number badges -->
360
+ <span class="icon icon-0-circle"></span>
361
+ <span class="icon icon-5-circle-fill icon-size-lg" style="color:#3b82f6;"></span>
362
+
363
+ <!-- Arrows -->
364
+ <span class="icon icon-arrow-down"></span>
365
+ <span class="icon icon-arrow-clockwise icon-size-xl" style="color:#22c55e;"></span>
366
+
367
+ <!-- UI chrome -->
368
+ <span class="icon icon-activity"></span>
369
+ <span class="icon icon-alarm icon-size-2x" style="color:#ef4444;"></span>
370
+ <span class="icon icon-archive-fill"></span>
371
+ ```
372
+
373
+ **Full icon list (100):**
374
+
375
+ | Group | Icons |
376
+ |---|---|
377
+ | Numbers | `0-circle` `0-circle-fill` `0-square` `0-square-fill` `1-circle` `1-circle-fill` `1-square` `1-square-fill` `123` `2-circle` `2-circle-fill` `2-square` `2-square-fill` `3-circle` `3-circle-fill` `3-square` `3-square-fill` `4-circle` `4-circle-fill` `4-square` `4-square-fill` `5-circle` `5-circle-fill` `5-square` `5-square-fill` `6-circle` `6-circle-fill` `6-square` `6-square-fill` `7-circle` `7-circle-fill` `7-square` `7-square-fill` `8-circle` `8-circle-fill` `8-square` `8-square-fill` `9-circle` `9-circle-fill` `9-square` `9-square-fill` |
378
+ | Activity & Travel | `activity` `airplane` `airplane-engines` `airplane-engines-fill` `airplane-fill` `alarm` `alarm-fill` |
379
+ | Brands | `alexa` `alipay` `amazon` `amd` `android` `android2` `anthropic` `apple` `apple-music` `app` `app-indicator` |
380
+ | Alignment | `align-bottom` `align-center` `align-end` `align-middle` `align-start` `align-top` |
381
+ | Text | `alphabet` `alphabet-uppercase` `alt` |
382
+ | Files | `archive` `archive-fill` |
383
+ | Arrows | `arrow-90deg-down` `arrow-90deg-left` `arrow-90deg-right` `arrow-90deg-up` `arrow-bar-down` `arrow-bar-left` `arrow-bar-right` `arrow-bar-up` `arrow-clockwise` `arrow-counterclockwise` `arrow-down` `arrow-down-circle` `arrow-down-circle-fill` `arrow-down-left` `arrow-down-left-circle` `arrow-down-left-circle-fill` `arrow-down-left-square` `arrow-down-left-square-fill` `arrow-down-right` `arrow-down-right-circle` `arrow-down-right-circle-fill` `arrow-down-right-square` `arrow-down-right-square-fill` `arrow-down-short` `arrow-down-square` `arrow-down-square-fill` `arrow-down-up` `arrow-left` `arrow-left-circle` `arrow-left-circle-fill` |
384
+
385
+ > ๐ŸŽจ **[Icon Browser](https://santycss.santy.in/icons.html)** โ€” filter by "Essential UI" to browse all 100
386
+
387
+ ---
388
+
389
+ ## What's New in v2.4.0
390
+
391
+ ### โšก Migrate from Tailwind in One Command
392
+
393
+ Already using Tailwind CSS? Switch your entire project โ€” HTML, JSX, TSX, Vue, Svelte โ€” without rewriting a single file:
394
+
395
+ ```bash
396
+ npx santycss migrate --input=src/
397
+ ```
398
+
399
+ **Options:**
400
+ ```bash
401
+ npx santycss migrate --input=src/ # convert all files in src/
402
+ npx santycss migrate --file=index.html # single file
403
+ npx santycss migrate --dry-run # preview only, no writes
404
+ npx santycss migrate --dry-run --report # also list unmapped classes
405
+ ```
406
+
407
+ **What gets converted:**
408
+
409
+ | Tailwind | SantyCSS |
410
+ |---|---|
411
+ | `flex items-center gap-4` | `make-flex align-center gap-16` |
412
+ | `p-6 mt-4 mb-8` | `add-padding-24 add-margin-top-16 add-margin-bottom-32` |
413
+ | `text-lg font-semibold` | `set-text-18 text-semibold` |
414
+ | `bg-blue-500 text-white rounded-lg shadow-md` | `background-blue-500 color-white make-rounded-lg add-shadow-md` |
415
+ | `hidden md:block` | `make-hidden tablet:make-block` |
416
+ | `grid grid-cols-3 gap-6` | `make-grid grid-cols-3 gap-24` |
417
+
418
+ Covers 150+ Tailwind class names across flex/grid, spacing, typography, colors, borders, shadows, overflow, position, z-index, transitions, and more.
419
+
420
+ ---
421
+
422
+ ### ๐ŸŒ™ Dark Mode Semantic Token System
423
+
424
+ New CSS-variable token layer โ€” add `data-theme="dark"` to any element and every utility class adapts automatically. No duplicate classes, no `dark:` prefixes for common patterns:
425
+
426
+ ```html
427
+ <!-- Dark theme -->
428
+ <html data-theme="dark">
429
+
430
+ <!-- Follow OS preference -->
431
+ <html class="theme-auto">
432
+
433
+ <!-- Semantic utility classes โ€” adapt in both themes -->
434
+ <div class="bg-surface text-base">
435
+ <p class="text-muted">Subtitle</p>
436
+ <span class="text-accent">Highlight</span>
437
+ <hr class="border-base">
438
+ </div>
439
+ ```
440
+
441
+ **New semantic token classes:**
442
+
443
+ | Class | Light | Dark |
444
+ |---|---|---|
445
+ | `bg-base` | `#ffffff` | `#0f172a` |
446
+ | `bg-subtle` | `#f9fafb` | `#1e293b` |
447
+ | `bg-surface` | `#ffffff` | `#1e293b` |
448
+ | `bg-elevated` | `#ffffff` | `#334155` |
449
+ | `text-base` | `#111827` | `#f1f5f9` |
450
+ | `text-muted` | `#6b7280` | `#94a3b8` |
451
+ | `text-subtle` | `#9ca3af` | `#64748b` |
452
+ | `text-accent` | `#3b82f6` | `#60a5fa` |
453
+ | `bg-accent` | `#3b82f6` | `#60a5fa` |
454
+ | `bg-accent-light` | `rgba(59,130,246,.12)` | `rgba(96,165,250,.15)` |
455
+ | `border-base` | `#e5e7eb` | `#334155` |
456
+ | `border-strong` | `#d1d5db` | `#475569` |
457
+
458
+ **Override tokens in your own CSS:**
459
+ ```css
460
+ :root {
461
+ --santy-accent: #7c3aed; /* brand purple */
462
+ --santy-accent-light: rgba(124,58,237,.12);
463
+ }
464
+ [data-theme="dark"] {
465
+ --santy-accent: #a78bfa;
466
+ }
467
+ ```
468
+
469
+ ---
470
+
471
+ ### ๐Ÿค– AI-First โ€” Why SantyCSS is Better for AI
472
+
473
+ SantyCSS class names **are** the documentation. `add-bg-blue make-rounded` tells an LLM exactly what it's doing. `bg-blue-500 rounded-lg` requires a lookup table.
474
+
475
+ ```
476
+ Tailwind: bg-blue-500 rounded-lg shadow-md p-6 text-white font-semibold
477
+ SantyCSS: background-blue-500 make-rounded-lg add-shadow-md add-padding-24 color-white text-semibold
478
+ ```
479
+
480
+ The SantyCSS version is self-documenting โ€” any developer (or AI) reading it knows exactly what CSS is applied. No docs needed.
481
+
482
+ **Use the context file** โ€” paste `santycss.context.md` into Claude, GPT-4, or Cursor's system prompt:
483
+ ```
484
+ Paste santycss.context.md โ†’ AI writes SantyCSS instead of Tailwind, every time
485
+ ```
486
+
487
+ ---
488
+
489
+ ## What's New in v2.0
490
+
491
+ ### ๐Ÿฆ‡ Creature Animations โ€” Premium Free
492
+
493
+ 10 hand-crafted creature animations included free in v2.0. No extra import, no paywall โ€” just add the class.
494
+
495
+ | Class | Creature | Description |
496
+ |---|---|---|
497
+ | `animate-bat-fly` | ๐Ÿฆ‡ Bat | Flies across screen with arcing path |
498
+ | `animate-bat-wings` | ๐Ÿฆ‡ Bat wings | Wing flap loop (combine with `animate-bat-fly`) |
499
+ | `animate-butterfly` | ๐Ÿฆ‹ Butterfly | Wing flap using scaleX |
500
+ | `animate-butterfly-drift` | ๐Ÿฆ‹ Butterfly drift | Drifts through the air while flapping |
501
+ | `animate-firefly` | ๐ŸŒŸ Firefly | Erratic glowing float |
502
+ | `animate-firefly-glow` | โœจ Firefly glow | Pulsing yellow glow effect |
503
+ | `animate-spider-drop` | ๐Ÿ•ท๏ธ Spider | Descends on thread and ascends |
504
+ | `animate-spider-swing` | ๐Ÿ•ท๏ธ Spider swing | Pendulum swing on thread |
505
+ | `animate-fish-swim` | ๐ŸŸ Fish | Swims with tail-wave body motion |
506
+ | `animate-jellyfish` | ๐ŸŽ Jellyfish | Pulsing bell contraction + float |
507
+ | `animate-jellyfish-tendrils` | ๐ŸŽ Tendrils | Trailing tendril sway |
508
+ | `animate-bird-flock` | ๐Ÿฆ Bird | Soaring arc with rotation |
509
+ | `animate-bird-flock-2` / `animate-bird-flock-3` | ๐Ÿฆ๐Ÿฆ Flock | Staggered offsets for formation effect |
510
+ | `animate-bee-hover` | ๐Ÿ Bee | Hovering with natural drift |
511
+ | `animate-bee-buzz` | ๐Ÿ Buzz | Rapid wing-buzz shake |
512
+ | `animate-snake-slither` | ๐Ÿ Snake | Sinusoidal slithering path |
513
+ | `animate-dragon-fire` | ๐Ÿ”ฅ Dragon fire | Fire burst expanding and fading |
514
+ | `animate-fire-flicker` | ๐Ÿ”ฅ Flicker | Rapid flame flicker |
515
+
516
+ ```html
517
+ <!-- Bat flying across -->
518
+ <span class="animate-bat-fly animate-bat-wings">๐Ÿฆ‡</span>
519
+
520
+ <!-- Butterfly flapping and drifting -->
521
+ <span class="animate-butterfly animate-butterfly-drift">๐Ÿฆ‹</span>
522
+
523
+ <!-- Firefly with glow -->
524
+ <span class="animate-firefly animate-firefly-glow">โœจ</span>
525
+
526
+ <!-- Bird flock formation (3 birds) -->
527
+ <span class="animate-bird-flock">๐Ÿฆ</span>
528
+ <span class="animate-bird-flock-2">๐Ÿฆ</span>
529
+ <span class="animate-bird-flock-3">๐Ÿฆ</span>
530
+
531
+ <!-- Dragon fire breath -->
532
+ <span class="animate-dragon-fire animate-fire-flicker">๐Ÿ”ฅ</span>
533
+ ```
534
+
535
+ > ๐ŸŽฌ **[See all creature animations live โ†’](https://santycss.santy.in/animations.html#creature-animations)**
536
+
537
+ ---
538
+
539
+ ## What's New in v1.9
540
+
541
+ ### ๐ŸŒŠ Scroll & Scrollbar Utilities
542
+
543
+ | Class | Description |
544
+ |---|---|
545
+ | `scroll-smooth` | `scroll-behavior: smooth` |
546
+ | `scroll-auto` | `scroll-behavior: auto` |
547
+ | `scrollbar-thin` | Narrow scrollbar (webkit + standard) |
548
+ | `scrollbar-dark` | Dark-themed scrollbar |
549
+ | `scrollbar-hidden` | Hide scrollbar, keep scroll functionality |
550
+
551
+ ### ๐ŸชŸ Glass Morphism
552
+
553
+ | Class | Description |
554
+ |---|---|
555
+ | `glass` | Frosted glass effect (blur + semi-transparent white) |
556
+ | `glass-dark` | Dark frosted glass |
557
+ | `glass-light` | Light frosted glass |
558
+
559
+ ### ๐ŸŒˆ Radial Gradients
560
+
561
+ ```html
562
+ <div class="gradient-radial-blue-purple">...</div>
563
+ <div class="gradient-radial-pink-orange">...</div>
564
+ ```
565
+
566
+ All `gradient-radial-*` utilities use CSS `radial-gradient()` matching the existing linear gradient palette.
567
+
568
+ ### ๐ŸŽฌ New Animation Utilities
569
+
570
+ | Class | Description |
571
+ |---|---|
572
+ | `animate-spin-slow` | Slow clockwise rotation |
573
+ | `animate-spin-fast` | Fast clockwise rotation |
574
+ | `animate-spin-cw` | Explicit clockwise spin |
575
+ | `animate-spin-ccw` | Counter-clockwise spin |
576
+ | `animate-spin-xslow` | Very slow rotation |
577
+ | `animate-pulse-dot` | Pulsing dot indicator |
578
+ | `skill-bar-animated` | Animated skill/progress bar fill |
579
+
580
+ ```html
581
+ <!-- Pulsing status indicator -->
582
+ <span class="animate-pulse-dot background-green-500"></span>
583
+
584
+ <!-- Animated skill bar -->
585
+ <div class="skill-bar-animated" style="--skill-width: 80%"></div>
586
+
587
+ <!-- Counter-clockwise spinner -->
588
+ <div class="animate-spin-ccw">โ†บ</div>
589
+ ```
590
+
591
+ ---
592
+
593
+ ## What's New in v1.8
594
+
595
+ ### ๐ŸŽจ SantyCSS Inspector โ€” Figma Plugin
596
+
597
+ Inspect any Figma layer and get the exact SantyCSS classes in one click.
598
+
599
+ **Download / Install:**
600
+
601
+ > ๐ŸŒ **[Download from santycss.santy.in/docs.html](https://santycss.santy.in/docs.html#figma-plugin)** โ€” full setup guide and one-click download
602
+
603
+ **Local development install:**
604
+ 1. Clone this repo โ€” the plugin lives in `figma-plugin-santycss/`
605
+ 2. Open **Figma Desktop** โ†’ Plugins โ†’ Development โ†’ **Import plugin from manifest**
606
+ 3. Select `figma-plugin-santycss/manifest.json`
607
+ 4. Select any frame/text layer โ†’ run **SantyCSS Inspector**
608
+
609
+ **What it detects:**
610
+
611
+ | Figma property | SantyCSS output |
612
+ |---|---|
613
+ | Auto-layout (horizontal) | `make-flex flex-row` |
614
+ | Auto-layout (vertical) | `make-flex flex-column` |
615
+ | Alignment | `justify-center`, `align-center`, `justify-between` |
616
+ | Gap | `gap-16`, `gap-24` |
617
+ | Padding | `add-padding-24`, `add-padding-x-16 add-padding-y-8` |
618
+ | Width / Height | `set-width-320`, `set-width-full`, `set-height-fit` |
619
+ | Corner radius | `round-corners-8`, `make-pill` |
620
+ | Stroke | `add-border-1`, `border-color-blue-500` |
621
+ | Fill / background | `background-blue-500` (nearest of 200 palette colors) |
622
+ | Text color | `color-gray-900` |
623
+ | Font size | `set-text-16` |
624
+ | Font weight | `text-bold`, `text-semibold` |
625
+ | Text align | `text-center`, `text-right` |
626
+ | Drop shadow | `add-shadow-sm` / `add-shadow-lg` |
627
+ | Opacity | `opacity-50` |
628
+ | Clips content | `overflow-hidden` |
629
+
630
+ **Plugin UI:**
631
+ - Grouped classes (Layout / Spacing / Size / Typography / Color / Border / Effects)
632
+ - Click any chip to copy that class
633
+ - **Copy All** button โ€” copies all classes as one string
634
+ - Dark mode โ€” follows Figma's theme automatically
635
+
636
+ ---
637
+
638
+ ## What's New in v1.7
639
+
640
+ ### โ™ฟ Accessibility Utilities
641
+
642
+ | Class | What it does |
643
+ |---|---|
644
+ | `.skip-to-content` | Skip-nav link โ€” visible on focus, hidden otherwise |
645
+ | `.focus-trap` | Container for modal/drawer focus trapping |
646
+ | `.aria-live-polite` / `.aria-live-assertive` | Visually hidden ARIA live regions |
647
+ | `.screen-reader-only` | Visually hide but keep accessible |
648
+ | `.focus-ring` / `.focus-ring-white` | Consistent focus outline utilities |
649
+ | `.focus-visible-ring` | Focus ring only on keyboard navigation |
650
+ | `.motion-safe-animate` | Disables animation when OS reduces motion |
651
+ | `.high-contrast-border/bg/outline` | `forced-colors` media query support |
652
+
653
+ ### ๐ŸŒ Internationalisation (i18n)
654
+
655
+ | Class | What it does |
656
+ |---|---|
657
+ | `.add-padding-block-{n}` / `.add-padding-inline-{n}` | Logical padding (direction-aware) |
658
+ | `.add-margin-block-{n}` / `.add-margin-inline-{n}` | Logical margin |
659
+ | `.pin-block-start-0` / `.pin-inline-start-0` | Logical positioning |
660
+ | `.border-block-start` / `.border-inline-start` | Logical borders |
661
+ | `.make-text-vertical` | `writing-mode: vertical-rl` โ€” for CJK/Japanese |
662
+ | `.make-text-vertical-up` | `writing-mode: vertical-lr` |
663
+ | `.text-orientation-mixed` / `.text-orientation-upright` | Text orientation control |
664
+ | `.text-direction-ltr` / `.text-direction-rtl` | Explicit `direction` control |
665
+
666
+ ### ๐Ÿ“ฑ Mobile-First Components
667
+
668
+ | Class | What it does |
669
+ |---|---|
670
+ | `.bottom-sheet` + `.open` | Slide-up panel from bottom (with safe-area support) |
671
+ | `.bottom-sheet-handle` / `.bottom-sheet-body` / `.bottom-sheet-footer` | Bottom sheet parts |
672
+ | `.bottom-sheet-overlay` + `.visible` | Semi-transparent backdrop |
673
+ | `.swipe-carousel` + `.swipe-carousel-item` | Touch-friendly horizontal scroll carousel |
674
+ | `.swipe-carousel-full` / `.peek` / `.multi` | Carousel layout variants |
675
+ | `.swipe-carousel-dot` + `.active` | Progress dots |
676
+ | `.pull-to-refresh` + `.pulling` / `.refreshing` | Pull-to-refresh indicator |
677
+ | `.padding-safe-top/bottom/left/right/all` | `env(safe-area-inset-*)` padding |
678
+
679
+ ### ๐Ÿ—“ New Components
680
+
681
+ | Class | What it does |
682
+ |---|---|
683
+ | `.command-palette-wrap` + `.open` | VS Code-style Ctrl+K command palette overlay |
684
+ | `.command-palette-input` / `.command-palette-item` | Command palette parts |
685
+ | `.date-picker` / `.date-picker-grid` / `.date-picker-day` | Full calendar date picker |
686
+ | `.date-picker-day.today` / `.selected` / `.in-range` | Day state modifiers |
687
+
688
+ ### ๐ŸŽจ Figma Plugin
689
+
690
+ The **SantyCSS Figma Plugin** is live โ€” inspect Figma designs and get the exact SantyCSS classes that match. See [What's New in v1.8](#-santycss-inspector--figma-plugin) above for full details and the download link.
691
+
692
+ ---
693
+
694
+ ## What's New in v1.4
695
+
696
+ ### ๐Ÿงฉ VS Code IntelliSense Extension
697
+
698
+ **SantyCSS IntelliSense** is now available as a VS Code extension โ€” similar to Tailwind CSS IntelliSense.
699
+
700
+ - **Autocomplete** โ€” type inside `class=""` or `className=""` and get instant suggestions for all 8,500+ SantyCSS classes
701
+ - **Hover docs** โ€” hover any class to see the CSS it generates
702
+ - **Works in** HTML, JSX, TSX, Vue, Svelte, PHP, ERB
703
+ - **Toggle command** โ€” `SantyCSS: Toggle IntelliSense` in the Command Palette
704
+
705
+ Install: search **SantyCSS IntelliSense** in the Extensions panel.
706
+
707
+ ---
708
+
709
+ ## What's New in v1.3
710
+
711
+ ### ๐ŸŽจ 70+ SVG Icons (new: Business & Finance)
712
+
713
+ SantyCSS now ships **two icon systems** in `santy-icons.css`:
714
+
715
+ **Brand Icons** (35) โ€” `.brand-icon` + `.brand-icon-{name}`
716
+ Social media, developer tools, platforms & payment services.
717
+
718
+ **Business & Finance Icons** (35) โ€” `.icon` + `.icon-{name}`
719
+ 35 utility icons sourced from Font Awesome 6 Free (CC BY 4.0):
720
+
721
+ | Category | Icons |
722
+ |---|---|
723
+ | Charts | `chart-bar` ยท `chart-column` ยท `chart-line` ยท `chart-pie` ยท `chart-area` ยท `chart-simple` |
724
+ | Money | `dollar-sign` ยท `euro-sign` ยท `coins` ยท `money-bill` ยท `money-bill-wave` ยท `sack-dollar` ยท `percent` |
725
+ | Business | `briefcase` ยท `handshake` ยท `building` ยท `building-columns` ยท `landmark` ยท `store` ยท `hotel` |
726
+ | Documents | `file-invoice` ยท `file-invoice-dollar` ยท `receipt` ยท `credit-card` ยท `wallet` |
727
+ | Commerce | `tag` ยท `tags` ยท `cash-register` ยท `calculator` ยท `piggy-bank` ยท `scale-balanced` |
728
+ | Trends | `arrow-trend-up` ยท `arrow-trend-down` ยท `hand-holding-dollar` ยท `house` |
729
+
730
+ ```html
731
+ <!-- Include the icon stylesheet -->
732
+ <link rel="stylesheet" href="santy-icons.css">
733
+
734
+ <!-- Brand icon (social/dev) -->
735
+ <span class="brand-icon brand-icon-github"></span>
736
+ <span class="brand-icon brand-icon-react brand-icon-color-react brand-icon-xl"></span>
737
+
738
+ <!-- Business & Finance icon -->
739
+ <span class="icon icon-briefcase"></span>
740
+ <span class="icon icon-dollar-sign icon-xl" style="color:#16a34a;"></span>
741
+ <span class="icon icon-chart-line icon-32"></span>
742
+ ```
743
+
744
+ **Size modifiers** (same for both systems):
745
+ ```
746
+ .icon-xs .icon-sm .icon-md .icon-lg .icon-xl
747
+ .icon-2x .icon-3x .icon-4x .icon-5x .icon-6x
748
+ .icon-16 .icon-24 .icon-32 .icon-48 .icon-64
749
+ ```
750
+
751
+ **Animations:**
752
+ ```html
753
+ <span class="icon icon-coins icon-spin icon-xl" style="color:#f59e0b;"></span>
754
+ ```
755
+
756
+ > ๐ŸŽจ **[Icon Browser](https://santycss.santy.in/icons.html)** โ€” search, filter, and copy-click any icon
757
+
758
+ ---
759
+
760
+ ## What's New in v1.2
761
+
762
+ ### ๐ŸŽฌ 120+ Animations (was 70+)
763
+
764
+ **Scroll-Triggered** โ€” elements animate when they enter the viewport:
765
+ ```html
766
+ <div class="animate-on-scroll-slide-up scroll-reveal-delay-200">Reveals on scroll</div>
767
+ <!-- Add IntersectionObserver once in your JS -->
768
+ ```
769
+
770
+ **Hover-Triggered** โ€” full animations on mouse-over, not just transforms:
771
+ ```html
772
+ <button class="make-button style-primary on-hover:animate-rubber-band">Hover me</button>
773
+ <div class="animate-text-gradient-flow set-text-32 text-bold">Gradient Flow</div>
774
+ ```
775
+
776
+ **Text Animations:**
777
+ ```html
778
+ <h1 class="animate-typewriter">Hello, World!</h1>
779
+ <h2 class="animate-text-glitch">Glitch</h2>
780
+ <p class="animate-text-neon-pulse color-blue-400">Neon Pulse</p>
781
+ ```
782
+
783
+ **Staggered Entrances** โ€” children animate in sequence:
784
+ ```html
785
+ <ul class="animate-stagger-slide-up animate-stagger-children-100">
786
+ <li>Item 1</li> <!-- 0ms delay -->
787
+ <li>Item 2</li> <!-- 100ms delay -->
788
+ <li>Item 3</li> <!-- 200ms delay -->
789
+ </ul>
790
+ ```
791
+
792
+ **3D Animations:**
793
+ ```html
794
+ <div class="animate-flip-3d-y">Card flip</div>
795
+ <div class="animate-morph-blob" style="width:80px;height:80px;background:#6366f1;"></div>
796
+ <div class="animate-border-spin">Spinning border</div>
797
+ ```
798
+
799
+ **UI Feedback Animations** โ€” paired with components:
800
+ ```html
801
+ <div class="animate-toast-in">Toast notification</div>
802
+ <div class="animate-modal-in">Modal dialog</div>
803
+ <div class="animate-error-shake">Form error</div>
804
+ ```
805
+
806
+ **New helper classes:**
807
+ ```
808
+ animation-ease-bounce animation-ease-elastic animation-ease-spring
809
+ animation-direction-reverse animation-direction-alternate
810
+ animation-pause-on-hover animation-delay-750 animation-delay-1500
811
+ animation-delay-2500 animation-speed-ultra-fast
812
+ ```
813
+
814
+ ---
815
+
816
+ ### ๐Ÿงฉ Component Variant System (`make-*`)
817
+
818
+ Replaces the old `btn btn-primary` pattern with a composable modifier system:
819
+
820
+ ```html
821
+ <!-- Old way -->
822
+ <button class="btn btn-success btn-lg">Old</button>
823
+
824
+ <!-- New way -->
825
+ <button class="make-button style-success size-large shape-pill">New</button>
826
+ <button class="make-button style-danger size-small shape-rounded">Delete</button>
827
+ <div class="make-card style-elevated">
828
+ <div class="card-body">...</div>
829
+ </div>
830
+ <span class="make-badge style-success">Active</span>
831
+ <div class="make-alert style-warning">Watch out</div>
832
+ ```
833
+
834
+ **All components:** `make-button` ยท `make-card` ยท `make-badge` ยท `make-alert` ยท `make-input` ยท `make-avatar` ยท `make-spinner` ยท `make-skeleton` ยท `make-progress` ยท `make-navbar` ยท `make-tooltip` ยท `make-modal` ยท `make-drawer` ยท `make-accordion` ยท `make-dropdown`
835
+
836
+ **Style modifiers:** `style-primary` ยท `style-secondary` ยท `style-success` ยท `style-danger` ยท `style-warning` ยท `style-info` ยท `style-outline` ยท `style-ghost` ยท `style-dark` ยท `style-flat` ยท `style-elevated` ยท `style-bordered`
837
+
838
+ **Size modifiers:** `size-small` ยท `size-large` ยท `size-xl` ยท `size-full`
839
+
840
+ **Shape modifiers:** `shape-pill` ยท `shape-rounded` ยท `shape-square`
841
+
842
+ ---
843
+
844
+ ### ๐ŸŒ 20 Modern CSS Utility Groups
845
+
846
+ | Group | Classes |
847
+ |---|---|
848
+ | Container Queries | `container-query`, `cq-sm:make-flex`, `cq-md:grid-cols-3` |
849
+ | Scroll & Snap | `scroll-smooth`, `scroll-snap-x`, `scroll-snap-center`, `overscroll-contain` |
850
+ | Logical Properties | `add-padding-inline-{n}`, `ps-{n}`, `pe-{n}`, `ms-auto`, `text-start`, `text-end` |
851
+ | Fluid Typography | `text-fluid-sm` through `text-fluid-hero` (CSS `clamp()`) |
852
+ | Clip Path | `clip-circle`, `clip-hexagon`, `clip-diamond`, `clip-star`, `clip-arrow-right` |
853
+ | Gradients | `gradient-radial-from-center`, `gradient-conic`, `text-gradient-blue-to-purple` |
854
+ | Advanced Grid | `grid-auto-fit-min-200`, `masonry-cols-3`, `grid-area-header/sidebar/main/footer` |
855
+ | Advanced Typography | `text-balance`, `text-pretty`, `text-clamp-1/2/3`, `drop-cap`, `font-tabular-nums` |
856
+ | Cursor Utilities | 30 cursor types including `cursor-cell`, `cursor-copy`, `cursor-resize-ns` |
857
+ | Dynamic Viewport | `set-height-dvh`, `set-height-svh`, `set-height-lvh`, `set-min-height-dvh` |
858
+ | Color Mix / Opacity | `background-blue-500/50`, `background-white/75`, `background-mix-blue-red-50` |
859
+ | Semantic Z-index | `z-modal: 400`, `z-tooltip: 600`, `z-toast: 700`, `isolate` |
860
+ | View Transitions | `view-transition-fade`, `view-transition-slide` (View Transitions API) |
861
+ | Size Utilities | `set-size-16` through `set-size-200`, `set-size-full/screen/fit` |
862
+ | Print Utilities | `print-hidden`, `print-only`, `print-break-before`, `print-show-links` |
863
+ | Subgrid | `grid-cols-subgrid`, `span-col-subgrid-3` |
864
+ | Math / Calc | `set-width-calc-100-minus-64`, `set-height-calc-screen-minus-80`, `set-max-width-readable` |
865
+ | Pointer / Touch | `touch-none`, `touch-pan-x`, `touch-manipulation`, `will-change-transform` |
866
+ | @layer | `@layer santy-base, santy-utilities, santy-components, santy-overrides` |
867
+ | 3D Transform | `perspective-*`, `rotate-3d`, `transform-origin-*` (extended) |
868
+
869
+ ---
870
+
871
+ ### ๐Ÿค– Built for the AI Era
872
+
873
+ SantyCSS ships a **context file** (`santycss.context.md`) โ€” paste it into Claude, GPT-4, or Cursor's system prompt and the AI generates SantyCSS instead of Tailwind, every time:
874
+
875
+ ```
876
+ Paste santycss.context.md โ†’ AI writes SantyCSS instead of Tailwind
877
+ ```
878
+
879
+ The **built-in AI Generator** converts plain English โ†’ SantyCSS classes in the browser (no API key):
880
+
881
+ > "a centered flex container with green background and white text and gap"
882
+ > โ†’ `make-flex align-center justify-center background-green-500 color-white gap-16`
883
+
884
+ ---
885
+
886
+ ## Webflow
887
+
888
+ Use SantyCSS on **[Webflow](https://webflow.com/)** without a build step: add the CDN `<link>` in **Project settings โ†’ Custom Code โ†’ Head**, then enter utility classes in the **Style โ†’ Selector** field on any element.
889
+
890
+ - **[Webflow guide + copy-paste snippets + sidebar class index](https://santycss.santy.in/webflow.html)** โ€” head/footer code, optional split bundles, scroll-animation helper, design tokens.
891
+
892
+ ---
893
+
894
+ ## Installation
895
+
896
+ ```bash
897
+ npm install santycss
898
+ ```
899
+
900
+ **CDN โ€” drop in and go (recommended for beginners):**
901
+ ```html
902
+ <!-- Base utilities + components, no extended variants/animations -->
903
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-start.css">
904
+ ```
905
+
906
+ **CDN โ€” full responsive coverage:**
907
+ ```html
908
+ <!-- Core utilities (slimmed) -->
909
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-core.css">
910
+ <!-- xl:, xxl:, on-wide:, peer-*, group-*, print:, motion-*, RTL -->
911
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy-variants.css">
912
+ ```
913
+
914
+ **CDN โ€” PostCSS/Vite purge workflow (teams):**
915
+ ```html
916
+ <!-- Full bundle โ€” purge down to ~15KB with PostCSS/Vite -->
917
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/santycss/dist/santy.min.css">
918
+ ```
919
+
920
+ **Import in JS/TS (React, Vue, Next, Nuxt, Vite):**
921
+ ```js
922
+ import 'santycss/css/start'; // drop-in: base utilities + components
923
+ import 'santycss/css/core'; // utilities only (slimmed, no extended variants)
924
+ import 'santycss/css/variants'; // xl:, peer-*, group-*, print:, motion-*, RTL
925
+ import 'santycss/css'; // full bundle
926
+ import 'santycss/css/components'; // component shortcuts
927
+ import 'santycss/css/animations'; // animations only
928
+ import 'santycss/css/email'; // email-safe CSS
929
+ ```
930
+
931
+ **PostCSS:**
932
+ ```js
933
+ // postcss.config.js
934
+ module.exports = {
935
+ plugins: [require('santycss/postcss')]
936
+ };
937
+ ```
938
+
939
+ **Vite plugin:**
940
+ ```js
941
+ // vite.config.js
942
+ import santyCSS from 'santycss/vite';
943
+ export default { plugins: [santyCSS()] };
944
+ ```
945
+
946
+ ---
947
+
948
+ ## Core Naming Conventions
949
+
950
+ | Pattern | Example | Meaning |
951
+ |---|---|---|
952
+ | `add-{prop}-{n}` | `add-padding-24` | Additive โ€” border, padding, margin, shadow |
953
+ | `make-{val}` | `make-flex`, `make-circle` | Display / behaviour |
954
+ | `set-{prop}-{val}` | `set-text-24`, `set-width-320` | Dimension / size setter |
955
+ | `pin-{side}-{n}` | `pin-top-0`, `pin-center` | Absolute / fixed positioning |
956
+ | `on-hover:{class}` | `on-hover:scale-110` | State / responsive prefix |
957
+ | `md:{class}` | `md:grid-cols-3` | Responsive breakpoint |
958
+ | `make-button style-* size-* shape-*` | `make-button style-success size-large shape-pill` | Component variant system |
959
+
960
+ ---
961
+
962
+ ## Quick Examples
963
+
964
+ **Responsive hero:**
965
+ ```html
966
+ <section class="make-flex flex-column align-center justify-center text-center add-padding-y-80 background-gray-50">
967
+ <h1 class="set-text-56 text-bold color-gray-900 add-margin-bottom-16 md:set-text-40 on-mobile:set-text-32">
968
+ Build faster
969
+ </h1>
970
+ <p class="set-text-20 color-gray-500 line-height-relaxed add-margin-bottom-32">
971
+ Plain-English CSS that reads like you wrote it.
972
+ </p>
973
+ <a href="#" class="make-button style-primary size-large shape-pill on-hover:scale-105 transition-all">
974
+ Get started โ†’
975
+ </a>
976
+ </section>
977
+ ```
978
+
979
+ **Card with hover effect:**
980
+ ```html
981
+ <div class="make-card style-bordered add-border-left-4 border-color-blue-500 on-hover:scale-105 transition-all cursor-pointer add-padding-28 add-shadow-md round-corners-16">
982
+ <h3 class="set-text-20 text-bold color-gray-900 add-margin-bottom-8">Card Title</h3>
983
+ <p class="set-text-14 color-gray-500 line-height-relaxed">Card description.</p>
984
+ </div>
985
+ ```
986
+
987
+ **Dark-mode card grid:**
988
+ ```html
989
+ <div class="make-grid grid-cols-3 gap-24 on-mobile:grid-cols-1 md:grid-cols-2">
990
+ <div class="make-card style-elevated background-white dark:background-gray-800 round-corners-16 add-padding-24">
991
+ <span class="make-badge style-primary add-margin-bottom-12">New</span>
992
+ <h4 class="set-text-18 text-semibold color-gray-900 dark:color-white">Feature</h4>
993
+ <p class="set-text-14 color-gray-500 dark:color-gray-400 line-height-relaxed">Description.</p>
994
+ </div>
995
+ </div>
996
+ ```
997
+
998
+ **Scroll-triggered stagger:**
999
+ ```html
1000
+ <div class="make-grid grid-cols-3 gap-24 animate-stagger-slide-up animate-stagger-children-200">
1001
+ <div class="make-card style-bordered">Card 1</div>
1002
+ <div class="make-card style-bordered">Card 2</div>
1003
+ <div class="make-card style-bordered">Card 3</div>
1004
+ </div>
1005
+ <script>
1006
+ new IntersectionObserver(entries => {
1007
+ entries.forEach(e => { if(e.isIntersecting) e.target.classList.add('is-visible'); });
1008
+ }, { threshold: 0.15 }).observe(
1009
+ ...document.querySelectorAll('[class*="animate-on-scroll"],[class*="scroll-reveal"]')
1010
+ );
1011
+ </script>
1012
+ ```
1013
+
1014
+ ---
1015
+
1016
+ ## Spacing & Sizing Reference
1017
+
1018
+ **Spacing values (n):** 0โ€“50 every 1px ยท 52โ€“200 every 4px ยท plus 256, 320, 384, 448, 512, 640, 768, 1024
1019
+
1020
+ | Category | Classes |
1021
+ |---|---|
1022
+ | Padding | `add-padding-{n}` ยท `-top-` ยท `-bottom-` ยท `-left-` ยท `-right-` ยท `-x-` ยท `-y-{n}` |
1023
+ | Margin | `add-margin-{n}` ยท `-top-` ยท `-bottom-` ยท `-left-` ยท `-right-` ยท `-x-` ยท `-y-{n}` ยท `-x-auto` |
1024
+ | Gap | `gap-{n}` ยท `gap-x-{n}` ยท `gap-y-{n}` |
1025
+ | Width | `set-width-{n}` ยท `-full` ยท `-screen` ยท `-fit` |
1026
+ | Height | `set-height-{n}` ยท `-full` ยท `-screen` ยท `-dvh` ยท `-svh` ยท `-lvh` |
1027
+ | Text size | `set-text-{n}` (8โ€“144px) |
1028
+
1029
+ ---
1030
+
1031
+ ## Colors
1032
+
1033
+ 20 color families ร— 10 shades (50โ€“950):
1034
+
1035
+ `blue` `red` `green` `yellow` `purple` `pink` `orange` `gray` `indigo` `cyan` `teal` `rose` `violet` `emerald` `amber` `lime` `sky` `slate` `zinc` `neutral` `stone`
1036
+
1037
+ ```html
1038
+ <p class="color-blue-500">Text</p>
1039
+ <div class="background-emerald-100 border-color-emerald-400 add-border-2">Card</div>
1040
+ ```
1041
+
1042
+ ---
1043
+
1044
+ ## Responsive Breakpoints
1045
+
1046
+ ```
1047
+ sm:{class} 640px+
1048
+ md:{class} 768px+
1049
+ lg:{class} 1024px+
1050
+ xl:{class} 1280px+
1051
+ on-mobile:{class} max 767px
1052
+ on-tablet:{class} 768โ€“1023px
1053
+ on-desktop:{class} 1024px+
1054
+ ```
1055
+
1056
+ ---
1057
+
1058
+ ## CSS Design Tokens
1059
+
1060
+ Override to brand your entire UI with zero rebuilding:
1061
+
1062
+ ```css
1063
+ :root {
1064
+ --santy-primary: #3b82f6;
1065
+ --santy-secondary: #8b5cf6;
1066
+ --santy-accent: #10b981;
1067
+ --santy-radius: 0.5rem;
1068
+ --santy-font: 'Inter', system-ui, sans-serif;
1069
+ }
1070
+ ```
1071
+
1072
+ ---
1073
+
1074
+ ## Component Classes (Legacy)
1075
+
1076
+ The original `.btn`, `.card`, `.badge` classes still work and are fully supported:
1077
+
1078
+ ```html
1079
+ <button class="btn btn-primary btn-lg">Button</button>
1080
+ <div class="card card-body">Card</div>
1081
+ <span class="badge badge-success">Active</span>
1082
+ <div class="alert alert-warning">Warning</div>
1083
+ ```
1084
+
1085
+ For new projects, the **Component Variant System** (`make-button style-*`) is recommended.
1086
+
1087
+ ---
1088
+
1089
+ ## Files in the Package
1090
+
1091
+ | File | Size | Contents |
1092
+ |---|---|---|
1093
+ | `dist/santy-start.css` | 527KB | **CDN drop-in** โ€” base utilities + components, no extended variants/animations |
1094
+ | `dist/santy-core.css` | 310KB | Utilities only โ€” base + on-mobile/tablet/desktop/md + hover/focus |
1095
+ | `dist/santy-variants.css` | 287KB | Extended โ€” xl:, xxl:, on-wide:, peer-*, group-*, print:, motion-*, RTL |
1096
+ | `dist/santy-components.css` | 217KB | Component shortcuts only |
1097
+ | `dist/santy-animations.css` | 53KB | 120+ animations only |
1098
+ | `dist/santy.css` | 868KB | Everything โ€” full unminified bundle |
1099
+ | `dist/santy.min.css` | 758KB | Minified full bundle (purge with PostCSS/Vite โ†’ ~15KB) |
1100
+ | `dist/santy-email.css` | 13KB | Email-safe CSS for HTML email |
1101
+
1102
+ ---
1103
+
1104
+ ## Tree-shaking / Purge
1105
+
1106
+ Keep only the classes you use:
1107
+
1108
+ ```bash
1109
+ npx santycss purge --input ./src --output ./dist/santy.purged.css
1110
+ ```
1111
+
1112
+ Or in Node.js:
1113
+
1114
+ ```js
1115
+ const { purge } = require('santycss/purge');
1116
+ purge({ input: './src', output: './dist/santy.purged.css' });
1117
+ ```
1118
+
1119
+ ---
1120
+
1121
+ ## LLM / AI Integration
1122
+
1123
+ ```
1124
+ npm show santycss homepage
1125
+ โ†’ https://santycss.santy.in
1126
+ ```
1127
+
1128
+ The file `santycss.context.md` (in the GitHub repo) is a ready-made system prompt for LLMs. Paste it into your AI tool of choice and it will generate SantyCSS class names instead of Tailwind utilities.
1129
+
1130
+ ---
1131
+
1132
+ ## Links
1133
+
1134
+ - ๐ŸŒ Website: [santycss.santy.in](https://santycss.santy.in)
1135
+ - ๐Ÿ“– Class Reference: [santycss.santy.in/classes.html](https://santycss.santy.in/classes.html)
1136
+ - ๐ŸŒŠ Webflow: [santycss.santy.in/webflow.html](https://santycss.santy.in/webflow.html)
1137
+ - ๐ŸŽฌ Animations: [santycss.santy.in/animations.html](https://santycss.santy.in/animations.html)
1138
+ - ๐ŸŽฎ Live Demo: [santycss.santy.in/demo.html](https://santycss.santy.in/demo.html)
1139
+ - ๐Ÿ“ฆ npm Docs: [santycss.santy.in/docs.html](https://santycss.santy.in/docs.html)
1140
+ - ๐Ÿ› Issues: [github.com/ChintuSanty/santyCSS/issues](https://github.com/ChintuSanty/santyCSS/issues)
1141
+ - ๐Ÿ’ฌ Discussions: [GitHub Discussions](https://github.com/ChintuSanty/santyCSS/discussions/1)
1142
+
1143
+ ---
1144
+
1145
+ ## License
1146
+
1147
+ MIT ยฉ [Santy](https://github.com/ChintuSanty)