santycss
Version:
Plain-English utility-first CSS framework — no build step, just classes
283 lines (256 loc) • 11.3 kB
CSS
/* SantyCSS — effects module
Import individually to reduce bundle size.
https://santycss.santy.in */
/* ── Opacity ── */
.opacity-0 { opacity: 0; }
.opacity-5 { opacity: 0.05; }
.opacity-10 { opacity: 0.1; }
.opacity-15 { opacity: 0.15; }
.opacity-20 { opacity: 0.2; }
.opacity-25 { opacity: 0.25; }
.opacity-30 { opacity: 0.3; }
.opacity-35 { opacity: 0.35; }
.opacity-40 { opacity: 0.4; }
.opacity-45 { opacity: 0.45; }
.opacity-50 { opacity: 0.5; }
.opacity-55 { opacity: 0.55; }
.opacity-60 { opacity: 0.6; }
.opacity-65 { opacity: 0.65; }
.opacity-70 { opacity: 0.7; }
.opacity-75 { opacity: 0.75; }
.opacity-80 { opacity: 0.8; }
.opacity-85 { opacity: 0.85; }
.opacity-90 { opacity: 0.9; }
.opacity-95 { opacity: 0.95; }
.opacity-100 { opacity: 1; }
/* ── Box Shadow ── */
.add-shadow-sm { box-shadow: var(--santy-shadow-sm); }
.add-shadow { box-shadow: var(--santy-shadow); }
.add-shadow-md { box-shadow: var(--santy-shadow-md); }
.add-shadow-lg { box-shadow: var(--santy-shadow-lg); }
.add-shadow-xl { box-shadow: var(--santy-shadow-xl); }
.add-shadow-inner { box-shadow: var(--santy-shadow-inner); }
.add-shadow-none { box-shadow: none; }
.no-shadow { box-shadow: none; }
/* ── Drop Shadow (filter) ── */
.drop-shadow-sm { filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05)); }
.drop-shadow { filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1)); }
.drop-shadow-md { filter: drop-shadow(0 4px 3px rgba(0,0,0,0.07)); }
.drop-shadow-lg { filter: drop-shadow(0 10px 8px rgba(0,0,0,0.04)); }
.drop-shadow-xl { filter: drop-shadow(0 20px 13px rgba(0,0,0,0.03)); }
.drop-shadow-none { filter: drop-shadow(0 0 #0000); }
/* ── Text Shadow ── */
.text-shadow-sm { text-shadow: 0 1px 2px rgba(0,0,0,0.2); }
.text-shadow { text-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.text-shadow-lg { text-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.text-shadow-none{ text-shadow: none; }
/* ── Transition ── */
.transition-fast { transition: var(--santy-transition-fast); }
.transition-normal { transition: var(--santy-transition-normal); }
.transition-slow { transition: var(--santy-transition-slow); }
.transition-none { transition: none; }
.transition-colors { transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease; }
.transition-opacity{ transition: opacity 0.3s ease; }
.transition-transform{ transition: transform 0.3s ease; }
/* ── Transform ── */
.flip-horizontal { transform: scaleX(-1); }
.flip-vertical { transform: scaleY(-1); }
.rotate-45 { transform: rotate(45deg); }
.rotate-90 { transform: rotate(90deg); }
.rotate-135 { transform: rotate(135deg); }
.rotate-180 { transform: rotate(180deg); }
.rotate-270 { transform: rotate(270deg); }
.rotate-minus-45 { transform: rotate(-45deg); }
.rotate-minus-90 { transform: rotate(-90deg); }
.scale-75 { transform: scale(0.75); }
.scale-90 { transform: scale(0.90); }
.scale-95 { transform: scale(0.95); }
.scale-100 { transform: scale(1); }
.scale-105 { transform: scale(1.05); }
.scale-110 { transform: scale(1.10); }
.scale-125 { transform: scale(1.25); }
.scale-150 { transform: scale(1.50); }
.skew-x-3 { transform: skewX(3deg); }
.skew-x-6 { transform: skewX(6deg); }
.skew-x-12 { transform: skewX(12deg); }
.skew-y-3 { transform: skewY(3deg); }
.skew-y-6 { transform: skewY(6deg); }
.skew-y-12 { transform: skewY(12deg); }
.transform-origin-center { transform-origin: center; }
.transform-origin-top { transform-origin: top; }
.transform-origin-top-right { transform-origin: top right; }
.transform-origin-right { transform-origin: right; }
.transform-origin-bottom-right{ transform-origin: bottom right; }
.transform-origin-bottom { transform-origin: bottom; }
.transform-origin-bottom-left { transform-origin: bottom left; }
.transform-origin-left { transform-origin: left; }
.transform-origin-top-left { transform-origin: top left; }
/* ── Animation ── */
.animate-spin { animation: santy-spin 1s linear infinite; }
.animate-ping { animation: santy-ping 1s cubic-bezier(0,0,0.2,1) infinite; }
.animate-pulse { animation: santy-pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }
.animate-bounce { animation: santy-bounce 1s infinite; }
.animate-fade-in { animation: santy-fade-in 0.5s ease; }
.animate-fade-out { animation: santy-fade-out 0.5s ease; }
.animate-slide-up { animation: santy-slide-up 0.4s ease; }
.animate-slide-down { animation: santy-slide-down 0.4s ease; }
.animate-zoom-in { animation: santy-zoom-in 0.3s ease; }
.animation-paused { animation-play-state: paused; }
.animation-none { animation: none; }
@keyframes santy-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes santy-ping { 75%, 100% { transform: scale(2); opacity: 0; } }
@keyframes santy-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes santy-bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8,0,1,1); } 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0,0,0.2,1); } }
@keyframes santy-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes santy-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes santy-slide-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes santy-slide-down { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes santy-zoom-in { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
/* ── Cursor ── */
.cursor-auto { cursor: auto; }
.cursor-default { cursor: default; }
.cursor-pointer { cursor: pointer; }
.cursor-wait { cursor: wait; }
.cursor-text { cursor: text; }
.cursor-move { cursor: move; }
.cursor-not-allowed { cursor: not-allowed; }
.cursor-crosshair { cursor: crosshair; }
.cursor-grab { cursor: grab; }
.cursor-grabbing { cursor: grabbing; }
.cursor-zoom-in { cursor: zoom-in; }
.cursor-zoom-out { cursor: zoom-out; }
.cursor-help { cursor: help; }
.cursor-none { cursor: none; }
/* ── Filter ── */
.blur-sm { filter: blur(4px); }
.blur { filter: blur(8px); }
.blur-md { filter: blur(12px); }
.blur-lg { filter: blur(16px); }
.blur-xl { filter: blur(24px); }
.blur-none{ filter: blur(0); }
.brightness-50 { filter: brightness(0.5); }
.brightness-75 { filter: brightness(0.75); }
.brightness-90 { filter: brightness(0.9); }
.brightness-100 { filter: brightness(1); }
.brightness-110 { filter: brightness(1.1); }
.brightness-125 { filter: brightness(1.25); }
.brightness-150 { filter: brightness(1.5); }
.brightness-200 { filter: brightness(2); }
.contrast-50 { filter: contrast(0.5); }
.contrast-75 { filter: contrast(0.75); }
.contrast-100 { filter: contrast(1); }
.contrast-125 { filter: contrast(1.25); }
.contrast-150 { filter: contrast(1.5); }
.contrast-200 { filter: contrast(2); }
.grayscale { filter: grayscale(100%); }
.grayscale-0 { filter: grayscale(0); }
.sepia { filter: sepia(100%); }
.sepia-0 { filter: sepia(0); }
.invert { filter: invert(100%); }
.invert-0 { filter: invert(0); }
.saturate-0 { filter: saturate(0); }
.saturate-50 { filter: saturate(0.5); }
.saturate-100 { filter: saturate(1); }
.saturate-150 { filter: saturate(1.5); }
.saturate-200 { filter: saturate(2); }
.hue-rotate-30 { filter: hue-rotate(30deg); }
.hue-rotate-60 { filter: hue-rotate(60deg); }
.hue-rotate-90 { filter: hue-rotate(90deg); }
.hue-rotate-180 { filter: hue-rotate(180deg); }
/* ── Pointer Events ── */
.pointer-none { pointer-events: none; }
.pointer-auto { pointer-events: auto; }
.pointer-all { pointer-events: all; }
/* Standard pointer-events-* aliases */
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }
/* ── User Select ── */
.select-none { user-select: none; }
.select-text { user-select: text; }
.select-all { user-select: all; }
.select-auto { user-select: auto; }
/* ── Resize ── */
.resize-none { resize: none; }
.resize { resize: both; }
.resize-x { resize: horizontal; }
.resize-y { resize: vertical; }
/* ── Appearance ── */
.appearance-none { appearance: none; -webkit-appearance: none; }
.appearance-auto { appearance: auto; }
/* ── Outline ── */
.outline-none { outline: none; }
.outline { outline: 2px solid currentColor; }
.outline-dashed { outline: 2px dashed currentColor; }
.outline-offset-2 { outline-offset: 2px; }
.outline-offset-4 { outline-offset: 4px; }
/* ── List Style ── */
.list-none { list-style-type: none; padding-left: 0; }
.list-disc { list-style-type: disc; }
.list-decimal{ list-style-type: decimal; }
.list-inside { list-style-position: inside; }
.list-outside{ list-style-position: outside; }
/* ── Table ── */
.table-auto { table-layout: auto; }
.table-fixed { table-layout: fixed; }
.border-collapse{ border-collapse: collapse; }
.border-separate{ border-collapse: separate; }
/* ── Columns ── */
.columns-auto { columns: auto; }
.columns-1 { columns: 1; }
.columns-2 { columns: 2; }
.columns-3 { columns: 3; }
.columns-4 { columns: 4; }
.columns-5 { columns: 5; }
.columns-6 { columns: 6; }
/* ── Screen Reader Only ── */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border-width: 0;
}
.not-sr-only {
position: static;
width: auto;
height: auto;
padding: 0;
margin: 0;
overflow: visible;
clip: auto;
white-space: normal;
}
/* ── Break ── */
.break-before-auto { break-before: auto; }
.break-before-always { break-before: always; }
.break-before-avoid { break-before: avoid; }
.break-after-auto { break-after: auto; }
.break-after-always { break-after: always; }
.break-after-avoid { break-after: avoid; }
.break-inside-auto { break-inside: auto; }
.break-inside-avoid { break-inside: avoid; }
/* ── Isolation ── */
.isolate { isolation: isolate; }
.isolation-auto { isolation: auto; }
/* ── Mix Blend Mode ── */
.blend-normal { mix-blend-mode: normal; }
.blend-multiply { mix-blend-mode: multiply; }
.blend-screen { mix-blend-mode: screen; }
.blend-overlay { mix-blend-mode: overlay; }
.blend-darken { mix-blend-mode: darken; }
.blend-lighten { mix-blend-mode: lighten; }
.blend-difference { mix-blend-mode: difference; }
.blend-exclusion { mix-blend-mode: exclusion; }
.blend-hue { mix-blend-mode: hue; }
.blend-saturation { mix-blend-mode: saturation; }
.blend-color { mix-blend-mode: color; }
.blend-luminosity { mix-blend-mode: luminosity; }
/* ── Will Change ── */
.will-change-auto { will-change: auto; }
.will-change-scroll { will-change: scroll-position; }
.will-change-contents { will-change: contents; }
.will-change-transform { will-change: transform; }