@designbasekorea/theme 0.1.0 → 0.1.2

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.
@@ -1,919 +0,0 @@
1
- /**
2
- * 유틸리티 클래스 - 토큰 기반
3
- *
4
- * 목적: 자주 사용되는 스타일 패턴을 유틸리티 클래스로 제공
5
- * 기능: 간격, 색상, 타이포그래피, 레이아웃 등의 유틸리티
6
- * 사용법: class="p-4 text-primary bg-secondary"
7
- */
8
-
9
- @import 'variables';
10
-
11
- // ============================================================================
12
- // Spacing Utilities (토큰 기반)
13
- // ============================================================================
14
-
15
- // Padding utilities
16
- .p-0 {
17
- padding: $spacing-0 !important;
18
- }
19
-
20
- .p-1 {
21
- padding: $spacing-1 !important;
22
- }
23
-
24
- .p-2 {
25
- padding: $spacing-2 !important;
26
- }
27
-
28
- .p-3 {
29
- padding: $spacing-3 !important;
30
- }
31
-
32
- .p-4 {
33
- padding: $spacing-4 !important;
34
- }
35
-
36
- .p-5 {
37
- padding: $spacing-5 !important;
38
- }
39
-
40
- .p-6 {
41
- padding: $spacing-6 !important;
42
- }
43
-
44
- .p-8 {
45
- padding: $spacing-8 !important;
46
- }
47
-
48
- // Horizontal padding (좌우)
49
- .px-0 {
50
- padding-left: $spacing-0 !important;
51
- padding-right: $spacing-0 !important;
52
- }
53
-
54
- .px-1 {
55
- padding-left: $spacing-1 !important;
56
- padding-right: $spacing-1 !important;
57
- }
58
-
59
- .px-2 {
60
- padding-left: $spacing-2 !important;
61
- padding-right: $spacing-2 !important;
62
- }
63
-
64
- .px-3 {
65
- padding-left: $spacing-3 !important;
66
- padding-right: $spacing-3 !important;
67
- }
68
-
69
- .px-4 {
70
- padding-left: $spacing-4 !important;
71
- padding-right: $spacing-4 !important;
72
- }
73
-
74
- .px-5 {
75
- padding-left: $spacing-5 !important;
76
- padding-right: $spacing-5 !important;
77
- }
78
-
79
- .px-6 {
80
- padding-left: $spacing-6 !important;
81
- padding-right: $spacing-6 !important;
82
- }
83
-
84
- // Vertical padding (상하)
85
- .py-0 {
86
- padding-top: $spacing-0 !important;
87
- padding-bottom: $spacing-0 !important;
88
- }
89
-
90
- .py-1 {
91
- padding-top: $spacing-1 !important;
92
- padding-bottom: $spacing-1 !important;
93
- }
94
-
95
- .py-2 {
96
- padding-top: $spacing-2 !important;
97
- padding-bottom: $spacing-2 !important;
98
- }
99
-
100
- .py-3 {
101
- padding-top: $spacing-3 !important;
102
- padding-bottom: $spacing-3 !important;
103
- }
104
-
105
- .py-4 {
106
- padding-top: $spacing-4 !important;
107
- padding-bottom: $spacing-4 !important;
108
- }
109
-
110
- .py-5 {
111
- padding-top: $spacing-5 !important;
112
- padding-bottom: $spacing-5 !important;
113
- }
114
-
115
- .py-6 {
116
- padding-top: $spacing-6 !important;
117
- padding-bottom: $spacing-6 !important;
118
- }
119
-
120
- // Margin utilities
121
- .m-0 {
122
- margin: $spacing-0 !important;
123
- }
124
-
125
- .m-1 {
126
- margin: $spacing-1 !important;
127
- }
128
-
129
- .m-2 {
130
- margin: $spacing-2 !important;
131
- }
132
-
133
- .m-3 {
134
- margin: $spacing-3 !important;
135
- }
136
-
137
- .m-4 {
138
- margin: $spacing-4 !important;
139
- }
140
-
141
- .m-5 {
142
- margin: $spacing-5 !important;
143
- }
144
-
145
- .m-6 {
146
- margin: $spacing-6 !important;
147
- }
148
-
149
- .m-8 {
150
- margin: $spacing-8 !important;
151
- }
152
-
153
- // Horizontal margin (좌우)
154
- .mx-0 {
155
- margin-left: $spacing-0 !important;
156
- margin-right: $spacing-0 !important;
157
- }
158
-
159
- .mx-1 {
160
- margin-left: $spacing-1 !important;
161
- margin-right: $spacing-1 !important;
162
- }
163
-
164
- .mx-2 {
165
- margin-left: $spacing-2 !important;
166
- margin-right: $spacing-2 !important;
167
- }
168
-
169
- .mx-3 {
170
- margin-left: $spacing-3 !important;
171
- margin-right: $spacing-3 !important;
172
- }
173
-
174
- .mx-4 {
175
- margin-left: $spacing-4 !important;
176
- margin-right: $spacing-4 !important;
177
- }
178
-
179
- .mx-auto {
180
- margin-left: auto !important;
181
- margin-right: auto !important;
182
- }
183
-
184
- // Vertical margin (상하)
185
- .my-0 {
186
- margin-top: $spacing-0 !important;
187
- margin-bottom: $spacing-0 !important;
188
- }
189
-
190
- .my-1 {
191
- margin-top: $spacing-1 !important;
192
- margin-bottom: $spacing-1 !important;
193
- }
194
-
195
- .my-2 {
196
- margin-top: $spacing-2 !important;
197
- margin-bottom: $spacing-2 !important;
198
- }
199
-
200
- .my-3 {
201
- margin-top: $spacing-3 !important;
202
- margin-bottom: $spacing-3 !important;
203
- }
204
-
205
- .my-4 {
206
- margin-top: $spacing-4 !important;
207
- margin-bottom: $spacing-4 !important;
208
- }
209
-
210
- .my-5 {
211
- margin-top: $spacing-5 !important;
212
- margin-bottom: $spacing-5 !important;
213
- }
214
-
215
- .my-6 {
216
- margin-top: $spacing-6 !important;
217
- margin-bottom: $spacing-6 !important;
218
- }
219
-
220
- // ============================================================================
221
- // Color Utilities (토큰 기반)
222
- // ============================================================================
223
-
224
- // Text colors
225
- .text-primary {
226
- color: $text-primary !important;
227
- }
228
-
229
- .text-secondary {
230
- color: $text-secondary !important;
231
- }
232
-
233
- .text-muted {
234
- color: $text-muted !important;
235
- }
236
-
237
- .text-disabled {
238
- color: $text-disabled !important;
239
- }
240
-
241
- .text-inverse {
242
- color: $text-inverse !important;
243
- }
244
-
245
- .text-link {
246
- color: $text-link !important;
247
- }
248
-
249
- .text-success {
250
- color: $green-600 !important;
251
- }
252
-
253
- .text-warning {
254
- color: $yellow-600 !important;
255
- }
256
-
257
- .text-error {
258
- color: $red-600 !important;
259
- }
260
-
261
- // Background colors
262
- .bg-primary {
263
- background-color: $bg-primary !important;
264
- }
265
-
266
- .bg-secondary {
267
- background-color: $bg-secondary !important;
268
- }
269
-
270
- .bg-tertiary {
271
- background-color: $bg-tertiary !important;
272
- }
273
-
274
- .bg-inverse {
275
- background-color: $bg-inverse !important;
276
- }
277
-
278
- .bg-success {
279
- background-color: $green-50 !important;
280
- }
281
-
282
- .bg-warning {
283
- background-color: $yellow-50 !important;
284
- }
285
-
286
- .bg-error {
287
- background-color: $red-50 !important;
288
- }
289
-
290
- .bg-transparent {
291
- background-color: transparent !important;
292
- }
293
-
294
- // Border colors
295
- .border-primary {
296
- border-color: $border-primary !important;
297
- }
298
-
299
- .border-secondary {
300
- border-color: $border-secondary !important;
301
- }
302
-
303
- .border-muted {
304
- border-color: $border-muted !important;
305
- }
306
-
307
- .border-focus {
308
- border-color: $border-focus !important;
309
- }
310
-
311
- .border-success {
312
- border-color: $green-300 !important;
313
- }
314
-
315
- .border-warning {
316
- border-color: $yellow-300 !important;
317
- }
318
-
319
- .border-error {
320
- border-color: $color-red-300 !important;
321
- }
322
-
323
- // ============================================================================
324
- // Typography Utilities (토큰 기반)
325
- // ============================================================================
326
-
327
- // Font sizes
328
- .text-xs {
329
- font-size: $font-size-xs !important;
330
- }
331
-
332
- .text-sm {
333
- font-size: $font-size-sm !important;
334
- }
335
-
336
- .text-base {
337
- font-size: $font-size-base !important;
338
- }
339
-
340
- .text-lg {
341
- font-size: $font-size-lg !important;
342
- }
343
-
344
- .text-xl {
345
- font-size: $font-size-xl !important;
346
- }
347
-
348
- .text-2xl {
349
- font-size: $font-size-2xl !important;
350
- }
351
-
352
- .text-3xl {
353
- font-size: $font-size-3xl !important;
354
- }
355
-
356
- .text-4xl {
357
- font-size: $font-size-4xl !important;
358
- }
359
-
360
- // Font weights
361
- .font-light {
362
- font-weight: $font-weight-light !important;
363
- }
364
-
365
- .font-normal {
366
- font-weight: $font-weight-normal !important;
367
- }
368
-
369
- .font-medium {
370
- font-weight: $font-weight-medium !important;
371
- }
372
-
373
- .font-semibold {
374
- font-weight: $font-weight-semibold !important;
375
- }
376
-
377
- .font-bold {
378
- font-weight: $font-weight-bold !important;
379
- }
380
-
381
- // Font families
382
- .font-primary {
383
- font-family: $font-family-primary !important;
384
- }
385
-
386
- .font-mono {
387
- font-family: $font-family-mono !important;
388
- }
389
-
390
- // Line heights
391
- .leading-none {
392
- line-height: $line-height-none !important;
393
- }
394
-
395
- .leading-tight {
396
- line-height: $line-height-tight !important;
397
- }
398
-
399
- .leading-snug {
400
- line-height: $line-height-snug !important;
401
- }
402
-
403
- .leading-normal {
404
- line-height: $line-height-normal !important;
405
- }
406
-
407
- .leading-relaxed {
408
- line-height: $line-height-relaxed !important;
409
- }
410
-
411
- .leading-loose {
412
- line-height: $line-height-loose !important;
413
- }
414
-
415
- // Text alignment
416
- .text-left {
417
- text-align: left !important;
418
- }
419
-
420
- .text-center {
421
- text-align: center !important;
422
- }
423
-
424
- .text-right {
425
- text-align: right !important;
426
- }
427
-
428
- .text-justify {
429
- text-align: justify !important;
430
- }
431
-
432
- // Text decoration
433
- .no-underline {
434
- text-decoration: none !important;
435
- }
436
-
437
- .underline {
438
- text-decoration: underline !important;
439
- }
440
-
441
- .line-through {
442
- text-decoration: line-through !important;
443
- }
444
-
445
- // Text transform
446
- .uppercase {
447
- text-transform: uppercase !important;
448
- }
449
-
450
- .lowercase {
451
- text-transform: lowercase !important;
452
- }
453
-
454
- .capitalize {
455
- text-transform: capitalize !important;
456
- }
457
-
458
- .normal-case {
459
- text-transform: none !important;
460
- }
461
-
462
- // Text overflow
463
- .truncate {
464
- overflow: hidden;
465
- text-overflow: ellipsis;
466
- white-space: nowrap;
467
- }
468
-
469
- // ============================================================================
470
- // Layout Utilities
471
- // ============================================================================
472
-
473
- // Display
474
- .block {
475
- display: block !important;
476
- }
477
-
478
- .inline-block {
479
- display: inline-block !important;
480
- }
481
-
482
- .inline {
483
- display: inline !important;
484
- }
485
-
486
- .flex {
487
- display: flex !important;
488
- }
489
-
490
- .inline-flex {
491
- display: inline-flex !important;
492
- }
493
-
494
- .grid {
495
- display: grid !important;
496
- }
497
-
498
- .hidden {
499
- display: none !important;
500
- }
501
-
502
- // Flex utilities
503
- .flex-row {
504
- flex-direction: row !important;
505
- }
506
-
507
- .flex-row-reverse {
508
- flex-direction: row-reverse !important;
509
- }
510
-
511
- .flex-col {
512
- flex-direction: column !important;
513
- }
514
-
515
- .flex-col-reverse {
516
- flex-direction: column-reverse !important;
517
- }
518
-
519
- .flex-wrap {
520
- flex-wrap: wrap !important;
521
- }
522
-
523
- .flex-wrap-reverse {
524
- flex-wrap: wrap-reverse !important;
525
- }
526
-
527
- .flex-nowrap {
528
- flex-wrap: nowrap !important;
529
- }
530
-
531
- // Flex alignment
532
- .items-start {
533
- align-items: flex-start !important;
534
- }
535
-
536
- .items-end {
537
- align-items: flex-end !important;
538
- }
539
-
540
- .items-center {
541
- align-items: center !important;
542
- }
543
-
544
- .items-baseline {
545
- align-items: baseline !important;
546
- }
547
-
548
- .items-stretch {
549
- align-items: stretch !important;
550
- }
551
-
552
- // Flex justify
553
- .justify-start {
554
- justify-content: flex-start !important;
555
- }
556
-
557
- .justify-end {
558
- justify-content: flex-end !important;
559
- }
560
-
561
- .justify-center {
562
- justify-content: center !important;
563
- }
564
-
565
- .justify-between {
566
- justify-content: space-between !important;
567
- }
568
-
569
- .justify-around {
570
- justify-content: space-around !important;
571
- }
572
-
573
- .justify-evenly {
574
- justify-content: space-evenly !important;
575
- }
576
-
577
- // Flex sizing
578
- .flex-1 {
579
- flex: 1 1 0% !important;
580
- }
581
-
582
- .flex-auto {
583
- flex: 1 1 auto !important;
584
- }
585
-
586
- .flex-initial {
587
- flex: 0 1 auto !important;
588
- }
589
-
590
- .flex-none {
591
- flex: none !important;
592
- }
593
-
594
- .flex-shrink-0 {
595
- flex-shrink: 0 !important;
596
- }
597
-
598
- .flex-shrink {
599
- flex-shrink: 1 !important;
600
- }
601
-
602
- .flex-grow-0 {
603
- flex-grow: 0 !important;
604
- }
605
-
606
- .flex-grow {
607
- flex-grow: 1 !important;
608
- }
609
-
610
- // Position
611
- .static {
612
- position: static !important;
613
- }
614
-
615
- .fixed {
616
- position: fixed !important;
617
- }
618
-
619
- .absolute {
620
- position: absolute !important;
621
- }
622
-
623
- .relative {
624
- position: relative !important;
625
- }
626
-
627
- .sticky {
628
- position: sticky !important;
629
- }
630
-
631
- // Width
632
- .w-auto {
633
- width: auto !important;
634
- }
635
-
636
- .w-full {
637
- width: 100% !important;
638
- }
639
-
640
- .w-screen {
641
- width: 100vw !important;
642
- }
643
-
644
- .w-min {
645
- width: min-content !important;
646
- }
647
-
648
- .w-max {
649
- width: max-content !important;
650
- }
651
-
652
- .w-fit {
653
- width: fit-content !important;
654
- }
655
-
656
- // Height
657
- .h-auto {
658
- height: auto !important;
659
- }
660
-
661
- .h-full {
662
- height: 100% !important;
663
- }
664
-
665
- .h-screen {
666
- height: 100vh !important;
667
- }
668
-
669
- .h-min {
670
- height: min-content !important;
671
- }
672
-
673
- .h-max {
674
- height: max-content !important;
675
- }
676
-
677
- .h-fit {
678
- height: fit-content !important;
679
- }
680
-
681
- // ============================================================================
682
- // Border Utilities
683
- // ============================================================================
684
-
685
- .border {
686
- border: 1px solid var(--color-border-primary) !important;
687
- }
688
-
689
- .border-0 {
690
- border: 0 !important;
691
- }
692
-
693
- .border-t {
694
- border-top: 1px solid var(--color-border-primary) !important;
695
- }
696
-
697
- .border-r {
698
- border-right: 1px solid var(--color-border-primary) !important;
699
- }
700
-
701
- .border-b {
702
- border-bottom: 1px solid var(--color-border-primary) !important;
703
- }
704
-
705
- .border-l {
706
- border-left: 1px solid var(--color-border-primary) !important;
707
- }
708
-
709
- // Border radius
710
- .rounded-none {
711
- border-radius: var(--border-radius-none) !important;
712
- }
713
-
714
- .rounded-sm {
715
- border-radius: var(--border-radius-sm) !important;
716
- }
717
-
718
- .rounded {
719
- border-radius: var(--border-radius-base) !important;
720
- }
721
-
722
- .rounded-md {
723
- border-radius: var(--border-radius-md) !important;
724
- }
725
-
726
- .rounded-lg {
727
- border-radius: var(--border-radius-lg) !important;
728
- }
729
-
730
- .rounded-xl {
731
- border-radius: var(--border-radius-xl) !important;
732
- }
733
-
734
- .rounded-2xl {
735
- border-radius: var(--border-radius-2xl) !important;
736
- }
737
-
738
- .rounded-3xl {
739
- border-radius: var(--border-radius-3xl) !important;
740
- }
741
-
742
- .rounded-full {
743
- border-radius: var(--border-radius-full) !important;
744
- }
745
-
746
- // ============================================================================
747
- // Shadow Utilities
748
- // ============================================================================
749
-
750
- .shadow-none {
751
- box-shadow: var(--shadow-none) !important;
752
- }
753
-
754
- .shadow-sm {
755
- box-shadow: var(--shadow-sm) !important;
756
- }
757
-
758
- .shadow {
759
- box-shadow: var(--shadow-base) !important;
760
- }
761
-
762
- .shadow-md {
763
- box-shadow: var(--shadow-md) !important;
764
- }
765
-
766
- .shadow-lg {
767
- box-shadow: var(--shadow-lg) !important;
768
- }
769
-
770
- .shadow-xl {
771
- box-shadow: var(--shadow-xl) !important;
772
- }
773
-
774
- .shadow-2xl {
775
- box-shadow: var(--shadow-2xl) !important;
776
- }
777
-
778
- .shadow-inner {
779
- box-shadow: var(--shadow-inner) !important;
780
- }
781
-
782
- // ============================================================================
783
- // Miscellaneous Utilities
784
- // ============================================================================
785
-
786
- // Overflow
787
- .overflow-auto {
788
- overflow: auto !important;
789
- }
790
-
791
- .overflow-hidden {
792
- overflow: hidden !important;
793
- }
794
-
795
- .overflow-visible {
796
- overflow: visible !important;
797
- }
798
-
799
- .overflow-scroll {
800
- overflow: scroll !important;
801
- }
802
-
803
- .overflow-x-auto {
804
- overflow-x: auto !important;
805
- }
806
-
807
- .overflow-x-hidden {
808
- overflow-x: hidden !important;
809
- }
810
-
811
- .overflow-x-visible {
812
- overflow-x: visible !important;
813
- }
814
-
815
- .overflow-x-scroll {
816
- overflow-x: scroll !important;
817
- }
818
-
819
- .overflow-y-auto {
820
- overflow-y: auto !important;
821
- }
822
-
823
- .overflow-y-hidden {
824
- overflow-y: hidden !important;
825
- }
826
-
827
- .overflow-y-visible {
828
- overflow-y: visible !important;
829
- }
830
-
831
- .overflow-y-scroll {
832
- overflow-y: scroll !important;
833
- }
834
-
835
- // Cursor
836
- .cursor-auto {
837
- cursor: auto !important;
838
- }
839
-
840
- .cursor-default {
841
- cursor: default !important;
842
- }
843
-
844
- .cursor-pointer {
845
- cursor: pointer !important;
846
- }
847
-
848
- .cursor-wait {
849
- cursor: wait !important;
850
- }
851
-
852
- .cursor-text {
853
- cursor: text !important;
854
- }
855
-
856
- .cursor-move {
857
- cursor: move !important;
858
- }
859
-
860
- .cursor-help {
861
- cursor: help !important;
862
- }
863
-
864
- .cursor-not-allowed {
865
- cursor: not-allowed !important;
866
- }
867
-
868
- // User Select
869
- .select-none {
870
- user-select: none !important;
871
- }
872
-
873
- .select-text {
874
- user-select: text !important;
875
- }
876
-
877
- .select-all {
878
- user-select: all !important;
879
- }
880
-
881
- .select-auto {
882
- user-select: auto !important;
883
- }
884
-
885
- // Pointer Events
886
- .pointer-events-none {
887
- pointer-events: none !important;
888
- }
889
-
890
- .pointer-events-auto {
891
- pointer-events: auto !important;
892
- }
893
-
894
- // Resize
895
- .resize-none {
896
- resize: none !important;
897
- }
898
-
899
- .resize {
900
- resize: both !important;
901
- }
902
-
903
- .resize-x {
904
- resize: horizontal !important;
905
- }
906
-
907
- .resize-y {
908
- resize: vertical !important;
909
- }
910
-
911
- // Screen Reader Only
912
- .sr-only {
913
- @include visually-hidden;
914
- }
915
-
916
- // Focus styles
917
- .focus-ring:focus {
918
- @include focus-ring;
919
- }