santycss 2.5.0 → 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.
@@ -4,6 +4,7 @@
4
4
  For full responsive coverage: santy-core.css + santy-variants.css
5
5
  https://santycss.santy.in */
6
6
 
7
+ /* @SANTYMOD:reset */
7
8
  /* ============================================================
8
9
  SantyCSS v2.3.0 — Plain-English Utility CSS Framework
9
10
  https://github.com/santybad/santy_css
@@ -43,6 +44,8 @@
43
44
  --santy-shadow-inner: inset 0 2px 4px 0 rgba(0,0,0,0.06);
44
45
  }
45
46
 
47
+
48
+ /* @SANTYMOD:layout */
46
49
  /* ── Display ── */
47
50
  .make-block { display: block; }
48
51
  .make-inline { display: inline; }
@@ -60,6 +63,8 @@
60
63
  .make-invisible { visibility: hidden; }
61
64
  .make-collapse { visibility: collapse; }
62
65
 
66
+
67
+ /* @SANTYMOD:flex */
63
68
  /* ── Flex Direction ── */
64
69
  .flex-row { flex-direction: row; }
65
70
  .flex-row-reverse { flex-direction: row-reverse; }
@@ -148,6 +153,8 @@
148
153
  .order-11 { order: 11; }
149
154
  .order-12 { order: 12; }
150
155
 
156
+ /* @SANTYMOD:grid */
157
+
151
158
  /* ── Grid Template Columns ── */
152
159
  .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
153
160
  .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@@ -202,6 +209,8 @@
202
209
  .grid-auto-cols-fr { grid-auto-columns: minmax(0, 1fr); }
203
210
 
204
211
 
212
+ /* @SANTYMOD:spacing */
213
+
205
214
  /* ── Padding ── */
206
215
  .add-padding-0 { padding: 0px; }
207
216
  .add-padding-top-0 { padding-top: 0px; }
@@ -839,6 +848,8 @@
839
848
  .gap-x-1024 { column-gap: 1024px; }
840
849
  .gap-y-1024 { row-gap: 1024px; }
841
850
 
851
+ /* @SANTYMOD:sizing */
852
+
842
853
  /* ── Width ── */
843
854
  .set-width-0 { width: 0px; }
844
855
  .set-width-1 { width: 1px; }
@@ -1079,6 +1090,8 @@
1079
1090
  .min-width-none { min-width: none; }
1080
1091
  .max-width-none { max-width: none; }
1081
1092
 
1093
+ /* @SANTYMOD:borders */
1094
+
1082
1095
  /* ── Border Width ── */
1083
1096
  .add-border-0 { border: 0px solid; }
1084
1097
  .add-border-top-0 { border-top: 0px solid; }
@@ -1319,6 +1332,8 @@
1319
1332
  .round-left-128 { border-top-left-radius: 128px; border-bottom-left-radius: 128px; }
1320
1333
  .round-right-128 { border-top-right-radius: 128px; border-bottom-right-radius: 128px; }
1321
1334
 
1335
+ /* @SANTYMOD:typography */
1336
+
1322
1337
  /* ── Font Size ── */
1323
1338
  .set-text-8 { font-size: 8px; }
1324
1339
  .set-text-9 { font-size: 9px; }
@@ -1442,6 +1457,8 @@
1442
1457
  .letter-space-wider { letter-spacing: 0.05em; }
1443
1458
  .letter-space-widest { letter-spacing: 0.1em; }
1444
1459
 
1460
+ /* @SANTYMOD:colors */
1461
+
1445
1462
  /* ── Text Colors ── */
1446
1463
  .color-red-50 { color: #fef2f2; }
1447
1464
  .color-red-100 { color: #fee2e2; }
@@ -2408,6 +2425,8 @@
2408
2425
  .gradient-to-bottom-right { background-image: linear-gradient(to bottom right, var(--grad-from, transparent), var(--grad-to, transparent)); }
2409
2426
 
2410
2427
 
2428
+ /* @SANTYMOD:layout */
2429
+
2411
2430
  /* ── Position ── */
2412
2431
  .position-static { position: static; }
2413
2432
  .position-relative { position: relative; }
@@ -2604,6 +2623,8 @@
2604
2623
  .overflow-y-visible { overflow-y: visible; }
2605
2624
 
2606
2625
 
2626
+ /* @SANTYMOD:effects */
2627
+
2607
2628
  /* ── Opacity ── */
2608
2629
  .opacity-0 { opacity: 0; }
2609
2630
  .opacity-5 { opacity: 0.05; }
@@ -2736,6 +2757,8 @@
2736
2757
  .cursor-none { cursor: none; }
2737
2758
 
2738
2759
 
2760
+ /* @SANTYMOD:layout */
2761
+
2739
2762
  /* ── Object Fit ── */
2740
2763
  .fit-cover { object-fit: cover; }
2741
2764
  .fit-contain { object-fit: contain; }
@@ -2780,6 +2803,8 @@
2780
2803
  .aspect-video { aspect-ratio: 16 / 9; }
2781
2804
 
2782
2805
 
2806
+ /* @SANTYMOD:effects */
2807
+
2783
2808
  /* ── Filter ── */
2784
2809
  .blur-sm { filter: blur(4px); }
2785
2810
  .blur { filter: blur(8px); }
@@ -2930,6 +2955,8 @@
2930
2955
  .will-change-transform { will-change: transform; }
2931
2956
 
2932
2957
 
2958
+ /* @SANTYMOD:variants */
2959
+
2933
2960
  /* ═══════════════════════════════════════════════════════════════
2934
2961
  RESPONSIVE VARIANTS
2935
2962
  Usage: class="on-mobile:make-hidden md:make-flex lg:grid-cols-3"
@@ -4339,6 +4366,8 @@
4339
4366
 
4340
4367
 
4341
4368
 
4369
+ /* @SANTYMOD:animations */
4370
+
4342
4371
  /* ═══ SANTY COMPONENTS ═══ */
4343
4372
 
4344
4373
  /* ═══════════════════════════════════════════════════════════════
@@ -5972,6 +6001,8 @@
5972
6001
  .set-max-width-narrow { max-width: 45ch; }
5973
6002
 
5974
6003
 
6004
+ /* @SANTYMOD:typography */
6005
+
5975
6006
  /* ── Variable Font Weights ── */
5976
6007
  .font-variable { font-variation-settings: normal; }
5977
6008
  .font-condensed { font-stretch: condensed; font-variation-settings: 'wdth' 75; }
@@ -6008,6 +6039,8 @@
6008
6039
  .set-width-5-of-6 { width: 83.3333%; }
6009
6040
 
6010
6041
 
6042
+ /* @SANTYMOD:colors */
6043
+
6011
6044
  /* ── Caret Colors (full shade scale) ── */
6012
6045
  .caret-red-50 { caret-color: #fef2f2; }
6013
6046
  .caret-red-100 { caret-color: #fee2e2; }
@@ -6609,6 +6642,8 @@
6609
6642
  .border-stone-shade-10 { border-color: color-mix(in srgb, #78716c 90%, #000000); }
6610
6643
  /* ═══ VARIANTS_BLOCK_END ═══ */
6611
6644
 
6645
+ /* @SANTYMOD:layout */
6646
+
6612
6647
  /* ═══════════════════════════════════════════════════════════════════════════
6613
6648
  v1.7 — ACCESSIBILITY UTILITIES
6614
6649
  ═══════════════════════════════════════════════════════════════════════════ */
@@ -7723,3 +7758,226 @@
7723
7758
  /* ── What I do card ── */
7724
7759
  .what-i-do-card { background: #1c1c1e; border: 1px solid #252525; border-radius: 12px; padding: 22px; transition: border-color 0.2s, transform 0.2s; }
7725
7760
  .what-i-do-card:hover { border-color: #0099e5; transform: translateY(-3px); }
7761
+
7762
+ /* ═══════════════════════════════════════════════════════════════════════
7763
+ "IT'S ME" PORTFOLIO TEMPLATE COMPONENTS (Added v2.5.0)
7764
+ Light, orange-accent, multi-section single-page portfolio
7765
+ ═══════════════════════════════════════════════════════════════════════ */
7766
+
7767
+ /* ── Sticky nav ── */
7768
+ .itsme-nav {
7769
+ position: sticky; top: 0; z-index: 200; background: #fff;
7770
+ border-bottom: 1px solid #efefef; box-shadow: 0 2px 16px rgba(0,0,0,.06);
7771
+ display: flex; align-items: center; justify-content: space-between;
7772
+ padding: 0 40px; height: 68px;
7773
+ }
7774
+ .itsme-brand { font-size: 22px; font-weight: 800; color: #222; letter-spacing: -0.02em; }
7775
+ .itsme-brand span { color: #f97316; }
7776
+ .itsme-nav-links { display: flex; align-items: center; gap: 32px; list-style: none; margin: 0; padding: 0; }
7777
+ .itsme-nav-link {
7778
+ font-size: 12px; font-weight: 700; color: #555; text-decoration: none;
7779
+ letter-spacing: 0.06em; text-transform: uppercase; transition: color .2s; cursor: pointer; background: none; border: none; font-family: inherit; padding: 0;
7780
+ }
7781
+ .itsme-nav-link:hover, .itsme-nav-link.itsme-nav-active { color: #f97316; }
7782
+ .itsme-nav-getcv {
7783
+ font-size: 11px; font-weight: 800; color: #fff; background: #f97316;
7784
+ border: none; border-radius: 5px; padding: 9px 22px; cursor: pointer;
7785
+ text-decoration: none; letter-spacing: 0.06em; text-transform: uppercase;
7786
+ transition: background .2s, transform .15s; font-family: inherit;
7787
+ }
7788
+ .itsme-nav-getcv:hover { background: #ea6c10; transform: translateY(-1px); }
7789
+ .itsme-hamburger { display: none; background: none; border: 1px solid #e8e8e8; border-radius: 6px; padding: 7px 9px; cursor: pointer; color: #444; line-height: 1; }
7790
+ @media (max-width: 768px) {
7791
+ .itsme-nav { padding: 0 20px; }
7792
+ .itsme-hamburger { display: flex; align-items: center; }
7793
+ .itsme-nav-links { display: none; position: absolute; top: 68px; left: 0; right: 0; background: #fff; flex-direction: column; align-items: stretch; padding: 8px 0; border-bottom: 1px solid #efefef; gap: 0; box-shadow: 0 8px 24px rgba(0,0,0,.08); z-index: 199; }
7794
+ .itsme-nav-links.open { display: flex; }
7795
+ .itsme-nav-link { padding: 13px 24px; border-bottom: 1px solid #f5f5f5; }
7796
+ .itsme-nav-getcv { display: none; }
7797
+ }
7798
+
7799
+ /* ── Hero ── */
7800
+ .itsme-hero {
7801
+ min-height: 100vh; display: flex; flex-direction: column;
7802
+ align-items: center; justify-content: center; text-align: center;
7803
+ background: #fff; padding: 80px 24px; overflow: hidden;
7804
+ }
7805
+ .itsme-profile-ring {
7806
+ width: 180px; height: 180px; border-radius: 50%; border: 4px solid #f97316;
7807
+ padding: 5px; display: inline-flex; align-items: center; justify-content: center;
7808
+ margin-bottom: 32px; flex-shrink: 0;
7809
+ }
7810
+ .itsme-profile-img {
7811
+ width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
7812
+ background: linear-gradient(135deg, #fde68a 0%, #f97316 100%);
7813
+ display: flex; align-items: center; justify-content: center;
7814
+ font-size: 52px; font-weight: 900; color: #fff; overflow: hidden;
7815
+ }
7816
+ .itsme-hero-name { font-size: 52px; font-weight: 900; color: #1a1a2e; line-height: 1.1; margin: 0 0 14px; }
7817
+ .itsme-hero-tagline { font-size: 16px; color: #777; max-width: 480px; line-height: 1.7; margin: 0 0 32px; }
7818
+ .itsme-social-row { display: flex; gap: 10px; justify-content: center; margin-top: 32px; }
7819
+ .itsme-social-btn {
7820
+ width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid #e8e8e8;
7821
+ display: flex; align-items: center; justify-content: center; color: #888;
7822
+ text-decoration: none; transition: all .2s; background: #fff;
7823
+ }
7824
+ .itsme-social-btn:hover { border-color: #f97316; color: #f97316; background: rgba(249,115,22,.06); }
7825
+ @media (max-width: 640px) {
7826
+ .itsme-hero-name { font-size: 34px; }
7827
+ .itsme-profile-ring { width: 140px; height: 140px; }
7828
+ .itsme-profile-img { font-size: 40px; }
7829
+ }
7830
+
7831
+ /* ── Section scaffold ── */
7832
+ .itsme-section { padding: 80px 40px; }
7833
+ .itsme-section-alt { background: #f8f9fa; }
7834
+ .itsme-section-inner { max-width: 1100px; margin: 0 auto; }
7835
+ .itsme-eyebrow { font-size: 12px; font-weight: 800; color: #f97316; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 6px; }
7836
+ .itsme-title { font-size: 34px; font-weight: 900; color: #1a1a2e; margin: 0 0 10px; line-height: 1.15; }
7837
+ .itsme-divider { width: 48px; height: 3px; background: #f97316; border-radius: 2px; margin-bottom: 40px; }
7838
+ @media (max-width: 768px) {
7839
+ .itsme-section { padding: 56px 20px; }
7840
+ .itsme-title { font-size: 26px; }
7841
+ }
7842
+
7843
+ /* ── Bio info grid ── */
7844
+ .itsme-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 40px; margin-bottom: 28px; }
7845
+ .itsme-info-label { font-size: 11px; font-weight: 700; color: #aaa; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 2px; }
7846
+ .itsme-info-value { font-size: 14px; font-weight: 600; color: #333; }
7847
+ @media (max-width: 480px) { .itsme-info-grid { grid-template-columns: 1fr; } }
7848
+
7849
+ /* ── Service card ── */
7850
+ .itsme-service-card {
7851
+ background: #fff; border: 1px solid #efefef; border-radius: 14px;
7852
+ padding: 28px 22px; transition: box-shadow .25s, transform .25s;
7853
+ }
7854
+ .itsme-service-card:hover { box-shadow: 0 10px 36px rgba(249,115,22,.12); transform: translateY(-5px); }
7855
+ .itsme-service-icon {
7856
+ width: 52px; height: 52px; border-radius: 12px;
7857
+ background: rgba(249,115,22,.08); border: 1px solid rgba(249,115,22,.18);
7858
+ display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
7859
+ }
7860
+
7861
+ /* ── Light skill bars ── */
7862
+ .itsme-skill-row { margin-bottom: 18px; }
7863
+ .itsme-skill-meta { display: flex; justify-content: space-between; margin-bottom: 6px; font-size: 13px; font-weight: 600; color: #444; }
7864
+ .itsme-skill-pct { color: #f97316; }
7865
+ .itsme-skill-track { height: 6px; background: #f0f0f0; border-radius: 3px; overflow: hidden; }
7866
+ .itsme-skill-fill { height: 100%; border-radius: 3px; background: #f97316; width: 0; transition: width 1.2s cubic-bezier(.4,0,.2,1); }
7867
+ .itsme-skill-fill-blue { background: #3b82f6; }
7868
+ .itsme-skill-fill-purple { background: #8b5cf6; }
7869
+ .itsme-skill-fill-green { background: #22c55e; }
7870
+
7871
+ /* ── Light timeline ── */
7872
+ .itsme-timeline { position: relative; padding-left: 30px; }
7873
+ .itsme-timeline::before { content: ''; position: absolute; left: 5px; top: 8px; width: 2px; height: calc(100% - 16px); background: #efefef; }
7874
+ .itsme-timeline-item { position: relative; margin-bottom: 32px; }
7875
+ .itsme-timeline-dot {
7876
+ position: absolute; left: -30px; top: 5px; width: 12px; height: 12px;
7877
+ border-radius: 50%; background: #f97316; border: 2px solid #fff; box-shadow: 0 0 0 2px #f97316;
7878
+ }
7879
+ .itsme-timeline-badge {
7880
+ display: inline-block; font-size: 10px; font-weight: 800; color: #f97316;
7881
+ background: rgba(249,115,22,.08); border-radius: 4px; padding: 2px 10px;
7882
+ letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 8px;
7883
+ }
7884
+ .itsme-timeline-role { font-size: 15px; font-weight: 700; color: #1a1a2e; margin-bottom: 3px; }
7885
+ .itsme-timeline-org { font-size: 12px; color: #f97316; font-weight: 700; margin-bottom: 8px; }
7886
+ .itsme-timeline-desc { font-size: 13px; color: #777; line-height: 1.7; margin: 0; }
7887
+
7888
+ /* ── Testimonial card ── */
7889
+ .itsme-testimonial {
7890
+ background: #fff; border: 1px solid #efefef; border-radius: 14px;
7891
+ padding: 28px 24px; transition: box-shadow .2s;
7892
+ }
7893
+ .itsme-testimonial:hover { box-shadow: 0 8px 28px rgba(0,0,0,.08); }
7894
+ .itsme-testimonial-quote { font-size: 36px; color: #f97316; line-height: 1; margin-bottom: 12px; font-weight: 900; }
7895
+
7896
+ /* ── Work/portfolio card ── */
7897
+ .itsme-work-card {
7898
+ border-radius: 14px; overflow: hidden; background: #fff;
7899
+ border: 1px solid #efefef; transition: box-shadow .25s, transform .25s; position: relative;
7900
+ }
7901
+ .itsme-work-card:hover { box-shadow: 0 12px 40px rgba(0,0,0,.12); transform: translateY(-5px); }
7902
+ .itsme-work-thumb { aspect-ratio: 4/3; overflow: hidden; position: relative; }
7903
+ .itsme-work-thumb-bg { width: 100%; height: 100%; transition: transform .3s; display: flex; align-items: center; justify-content: center; }
7904
+ .itsme-work-card:hover .itsme-work-thumb-bg { transform: scale(1.06); }
7905
+ .itsme-work-overlay {
7906
+ position: absolute; inset: 0; background: rgba(249,115,22,.88);
7907
+ display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px;
7908
+ opacity: 0; transition: opacity .25s;
7909
+ }
7910
+ .itsme-work-card:hover .itsme-work-overlay { opacity: 1; }
7911
+ .itsme-work-cat {
7912
+ display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: 0.06em;
7913
+ text-transform: uppercase; color: #f97316; background: rgba(249,115,22,.08);
7914
+ border-radius: 4px; padding: 2px 10px; margin-bottom: 6px;
7915
+ }
7916
+
7917
+ /* ── Portfolio filter buttons ── */
7918
+ .itsme-filter { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
7919
+ .itsme-filter-btn {
7920
+ padding: 7px 20px; border-radius: 4px; border: 1.5px solid #e2e8f0;
7921
+ background: transparent; cursor: pointer; font-size: 11px; font-weight: 800;
7922
+ color: #777; font-family: inherit; transition: all .18s;
7923
+ text-transform: uppercase; letter-spacing: 0.06em;
7924
+ }
7925
+ .itsme-filter-btn:hover, .itsme-filter-btn.itsme-filter-active { background: #f97316; color: #fff; border-color: #f97316; }
7926
+
7927
+ /* ── Blog card ── */
7928
+ .itsme-blog-card {
7929
+ background: #fff; border: 1px solid #efefef; border-radius: 14px;
7930
+ overflow: hidden; transition: box-shadow .25s, transform .25s;
7931
+ }
7932
+ .itsme-blog-card:hover { box-shadow: 0 10px 32px rgba(0,0,0,.1); transform: translateY(-4px); }
7933
+ .itsme-blog-thumb { aspect-ratio: 16/9; overflow: hidden; }
7934
+ .itsme-blog-thumb-inner { width: 100%; height: 100%; transition: transform .3s; display: flex; align-items: center; justify-content: center; }
7935
+ .itsme-blog-card:hover .itsme-blog-thumb-inner { transform: scale(1.05); }
7936
+ .itsme-blog-tag {
7937
+ display: inline-block; font-size: 10px; font-weight: 800; padding: 3px 10px;
7938
+ border-radius: 4px; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 10px;
7939
+ }
7940
+ .itsme-tag-web { background: rgba(59,130,246,.08); color: #3b82f6; }
7941
+ .itsme-tag-graphic { background: rgba(249,115,22,.08); color: #f97316; }
7942
+ .itsme-tag-motion { background: rgba(139,92,246,.08); color: #8b5cf6; }
7943
+
7944
+ /* ── Contact form ── */
7945
+ .itsme-input {
7946
+ width: 100%; padding: 12px 16px; border: 1.5px solid #e8e8e8;
7947
+ border-radius: 8px; font-size: 14px; color: #333; background: #fff;
7948
+ outline: none; transition: border-color .2s; font-family: inherit;
7949
+ display: block;
7950
+ }
7951
+ .itsme-input:focus { border-color: #f97316; }
7952
+ .itsme-textarea { resize: vertical; min-height: 130px; }
7953
+
7954
+ /* ── Primary button ── */
7955
+ .itsme-btn {
7956
+ display: inline-flex; align-items: center; gap: 8px; padding: 13px 30px;
7957
+ background: #f97316; color: #fff; border: 2px solid #f97316;
7958
+ border-radius: 6px; font-size: 12px; font-weight: 800; letter-spacing: 0.06em;
7959
+ text-transform: uppercase; cursor: pointer; text-decoration: none;
7960
+ transition: background .2s, transform .15s; font-family: inherit;
7961
+ }
7962
+ .itsme-btn:hover { background: #ea6c10; border-color: #ea6c10; transform: translateY(-1px); }
7963
+ .itsme-btn-ghost { background: transparent; color: #f97316; }
7964
+ .itsme-btn-ghost:hover { background: #f97316; color: #fff; }
7965
+
7966
+ /* ── Floating dots background deco ── */
7967
+ .itsme-dot-deco {
7968
+ position: absolute; border-radius: 50%; pointer-events: none;
7969
+ background: #f97316; opacity: .04;
7970
+ }
7971
+
7972
+ /* ── Contact info card ── */
7973
+ .itsme-contact-card {
7974
+ display: flex; align-items: flex-start; gap: 16px; padding: 20px;
7975
+ background: #fff; border: 1px solid #efefef; border-radius: 12px; margin-bottom: 16px;
7976
+ transition: box-shadow .2s;
7977
+ }
7978
+ .itsme-contact-card:hover { box-shadow: 0 6px 24px rgba(249,115,22,.1); }
7979
+ .itsme-contact-icon {
7980
+ width: 44px; height: 44px; border-radius: 10px; flex-shrink: 0;
7981
+ background: rgba(249,115,22,.08); border: 1px solid rgba(249,115,22,.18);
7982
+ display: flex; align-items: center; justify-content: center;
7983
+ }
@@ -0,0 +1,161 @@
1
+ /* SantyCSS — typography module
2
+ Import individually to reduce bundle size.
3
+ https://santycss.santy.in */
4
+
5
+ /* ── Font Size ── */
6
+ .set-text-8 { font-size: 8px; }
7
+ .set-text-9 { font-size: 9px; }
8
+ .set-text-10 { font-size: 10px; }
9
+ .set-text-11 { font-size: 11px; }
10
+ .set-text-12 { font-size: 12px; }
11
+ .set-text-13 { font-size: 13px; }
12
+ .set-text-14 { font-size: 14px; }
13
+ .set-text-15 { font-size: 15px; }
14
+ .set-text-16 { font-size: 16px; }
15
+ .set-text-17 { font-size: 17px; }
16
+ .set-text-18 { font-size: 18px; }
17
+ .set-text-19 { font-size: 19px; }
18
+ .set-text-20 { font-size: 20px; }
19
+ .set-text-22 { font-size: 22px; }
20
+ .set-text-24 { font-size: 24px; }
21
+ .set-text-26 { font-size: 26px; }
22
+ .set-text-28 { font-size: 28px; }
23
+ .set-text-30 { font-size: 30px; }
24
+ .set-text-32 { font-size: 32px; }
25
+ .set-text-36 { font-size: 36px; }
26
+ .set-text-40 { font-size: 40px; }
27
+ .set-text-44 { font-size: 44px; }
28
+ .set-text-48 { font-size: 48px; }
29
+ .set-text-52 { font-size: 52px; }
30
+ .set-text-56 { font-size: 56px; }
31
+ .set-text-60 { font-size: 60px; }
32
+ .set-text-64 { font-size: 64px; }
33
+ .set-text-72 { font-size: 72px; }
34
+ .set-text-80 { font-size: 80px; }
35
+ .set-text-96 { font-size: 96px; }
36
+ .set-text-120 { font-size: 120px; }
37
+ .set-text-144 { font-size: 144px; }
38
+
39
+ /* ── Font Weight ── */
40
+ .text-thin { font-weight: 100; }
41
+ .text-extra-light { font-weight: 200; }
42
+ .text-light { font-weight: 300; }
43
+ .text-normal { font-weight: 400; }
44
+ .text-medium { font-weight: 500; }
45
+ .text-semibold { font-weight: 600; }
46
+ .text-bold { font-weight: 700; }
47
+ .text-extra-bold { font-weight: 800; }
48
+ .text-black-weight{ font-weight: 900; }
49
+
50
+ /* ── Font Style ── */
51
+ .text-italic { font-style: italic; }
52
+ .text-not-italic { font-style: normal; }
53
+
54
+ /* ── Font Family ── */
55
+ .font-sans { font-family: var(--santy-font-sans); }
56
+ .font-serif { font-family: var(--santy-font-serif); }
57
+ .font-mono { font-family: var(--santy-font-mono); }
58
+
59
+ /* ── Text Align ── */
60
+ .text-left { text-align: left; }
61
+ .text-center { text-align: center; }
62
+ .text-right { text-align: right; }
63
+ .text-justify { text-align: justify; }
64
+ .text-start { text-align: start; }
65
+ .text-end { text-align: end; }
66
+
67
+ /* ── Text Decoration ── */
68
+ .text-underline { text-decoration: underline; }
69
+ .text-overline { text-decoration: overline; }
70
+ .text-strikethrough { text-decoration: line-through; }
71
+ .text-no-decoration { text-decoration: none; }
72
+
73
+ /* ── Text Transform ── */
74
+ .text-uppercase { text-transform: uppercase; }
75
+ .text-lowercase { text-transform: lowercase; }
76
+ .text-capitalize { text-transform: capitalize; }
77
+ .text-no-transform { text-transform: none; }
78
+
79
+ /* ── Text Overflow ── */
80
+ .text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
81
+ .text-clip { text-overflow: clip; }
82
+ .text-ellipsis { text-overflow: ellipsis; }
83
+ .text-wrap { white-space: normal; }
84
+ .text-nowrap { white-space: nowrap; }
85
+ .text-pre { white-space: pre; }
86
+ .text-pre-wrap { white-space: pre-wrap; }
87
+ .text-pre-line { white-space: pre-line; }
88
+ .text-break-word { word-break: break-word; overflow-wrap: break-word; }
89
+ .text-break-all { word-break: break-all; }
90
+
91
+ /* ── Line Height ── */
92
+ .line-height-none { line-height: 1; }
93
+ .line-height-tight { line-height: 1.25; }
94
+ .line-height-snug { line-height: 1.375; }
95
+ .line-height-normal { line-height: 1.5; }
96
+ .line-height-relaxed { line-height: 1.625; }
97
+ .line-height-loose { line-height: 2; }
98
+
99
+ .line-height-1 { line-height: 1; }
100
+ .line-height-1-25 { line-height: 1.25; }
101
+ .line-height-1-375 { line-height: 1.375; }
102
+ .line-height-1-5 { line-height: 1.5; }
103
+ .line-height-1-625 { line-height: 1.625; }
104
+ .line-height-1-75 { line-height: 1.75; }
105
+ .line-height-2 { line-height: 2; }
106
+ .line-height-2-5 { line-height: 2.5; }
107
+ .line-height-3 { line-height: 3; }
108
+
109
+ /* ── Letter Spacing ── */
110
+ .subtract-letter-space-2 { letter-spacing: -2px; }
111
+ .subtract-letter-space-1 { letter-spacing: -1px; }
112
+ .add-letter-space-0 { letter-spacing: 0px; }
113
+ .add-letter-space-1 { letter-spacing: 1px; }
114
+ .add-letter-space-2 { letter-spacing: 2px; }
115
+ .add-letter-space-4 { letter-spacing: 4px; }
116
+ .add-letter-space-6 { letter-spacing: 6px; }
117
+ .add-letter-space-8 { letter-spacing: 8px; }
118
+ .add-letter-space-10 { letter-spacing: 10px; }
119
+ .add-letter-space-12 { letter-spacing: 12px; }
120
+ .add-letter-space-16 { letter-spacing: 16px; }
121
+ .letter-space-tight { letter-spacing: -0.05em; }
122
+ .letter-space-snug { letter-spacing: -0.025em; }
123
+ .letter-space-normal { letter-spacing: 0em; }
124
+ .letter-space-wide { letter-spacing: 0.025em; }
125
+ .letter-space-wider { letter-spacing: 0.05em; }
126
+ .letter-space-widest { letter-spacing: 0.1em; }
127
+
128
+ /* ── Variable Font Weights ── */
129
+ .font-variable { font-variation-settings: normal; }
130
+ .font-condensed { font-stretch: condensed; font-variation-settings: 'wdth' 75; }
131
+ .font-expanded { font-stretch: expanded; font-variation-settings: 'wdth' 125; }
132
+ .font-italic-variable { font-style: italic; font-variation-settings: 'ital' 1; }
133
+ .set-font-weight-100 { font-weight: 100; font-variation-settings: 'wght' 100; }
134
+ .set-font-weight-200 { font-weight: 200; font-variation-settings: 'wght' 200; }
135
+ .set-font-weight-300 { font-weight: 300; font-variation-settings: 'wght' 300; }
136
+ .set-font-weight-400 { font-weight: 400; font-variation-settings: 'wght' 400; }
137
+ .set-font-weight-450 { font-weight: 450; font-variation-settings: 'wght' 450; }
138
+ .set-font-weight-500 { font-weight: 500; font-variation-settings: 'wght' 500; }
139
+ .set-font-weight-550 { font-weight: 550; font-variation-settings: 'wght' 550; }
140
+ .set-font-weight-600 { font-weight: 600; font-variation-settings: 'wght' 600; }
141
+ .set-font-weight-700 { font-weight: 700; font-variation-settings: 'wght' 700; }
142
+ .set-font-weight-800 { font-weight: 800; font-variation-settings: 'wght' 800; }
143
+ .set-font-weight-900 { font-weight: 900; font-variation-settings: 'wght' 900; }
144
+
145
+ /* ── Negative Z-index (layer behind parent) ── */
146
+ .z-minus-1 { z-index: -1; }
147
+ .z-minus-2 { z-index: -2; }
148
+ .z-minus-3 { z-index: -3; }
149
+ .z-minus-5 { z-index: -5; }
150
+ .z-minus-10 { z-index: -10; }
151
+
152
+ /* ── Fractional Widths — fifths & sixths ── */
153
+ .set-width-1-of-5 { width: 20%; }
154
+ .set-width-2-of-5 { width: 40%; }
155
+ .set-width-3-of-5 { width: 60%; }
156
+ .set-width-4-of-5 { width: 80%; }
157
+ .set-width-1-of-6 { width: 16.6667%; }
158
+ .set-width-2-of-6 { width: 33.3333%; }
159
+ .set-width-3-of-6 { width: 50%; }
160
+ .set-width-4-of-6 { width: 66.6667%; }
161
+ .set-width-5-of-6 { width: 83.3333%; }