@skygraph/styles 0.2.4 → 0.6.6

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.
Files changed (68) hide show
  1. package/README.md +98 -98
  2. package/components/autocomplete.css +35 -35
  3. package/components/autofield.css +67 -67
  4. package/components/avatar.css +37 -37
  5. package/components/badge.css +102 -102
  6. package/components/breadcrumb.css +29 -29
  7. package/components/button.css +181 -181
  8. package/components/calendar.css +408 -408
  9. package/components/carousel.css +102 -102
  10. package/components/cascader.css +380 -380
  11. package/components/charts.css +408 -408
  12. package/components/checkbox.css +114 -114
  13. package/components/collapse.css +166 -166
  14. package/components/colorpicker.css +252 -252
  15. package/components/context-menu.css +95 -95
  16. package/components/descriptions.css +82 -82
  17. package/components/diagram.css +435 -435
  18. package/components/drawer.css +124 -124
  19. package/components/dropdown.css +110 -110
  20. package/components/empty.css +25 -25
  21. package/components/event-timeline.css +134 -134
  22. package/components/field.css +35 -35
  23. package/components/form.css +115 -115
  24. package/components/gantt.css +166 -166
  25. package/components/input-number.css +76 -76
  26. package/components/input-password.css +104 -104
  27. package/components/input.css +211 -211
  28. package/components/list.css +366 -366
  29. package/components/mentions.css +54 -54
  30. package/components/menu.css +326 -326
  31. package/components/modal.css +1 -0
  32. package/components/notification.css +128 -128
  33. package/components/pagination.css +162 -162
  34. package/components/popconfirm.css +95 -95
  35. package/components/progress.css +116 -116
  36. package/components/radio.css +95 -95
  37. package/components/rate.css +48 -48
  38. package/components/resource-calendar.css +224 -224
  39. package/components/result.css +45 -45
  40. package/components/schema-form-editor.css +433 -433
  41. package/components/search-input.css +112 -112
  42. package/components/segmented.css +76 -76
  43. package/components/select.css +181 -181
  44. package/components/skeleton.css +72 -72
  45. package/components/slider.css +51 -51
  46. package/components/spin.css +102 -102
  47. package/components/steps.css +194 -194
  48. package/components/switch.css +75 -75
  49. package/components/table.css +9 -1
  50. package/components/tabs.css +137 -137
  51. package/components/tag.css +61 -61
  52. package/components/textarea.css +22 -22
  53. package/components/timeline.css +169 -169
  54. package/components/timepicker.css +224 -224
  55. package/components/tooltip.css +91 -91
  56. package/components/transfer.css +140 -140
  57. package/components/tree.css +601 -601
  58. package/components/treeselect.css +221 -221
  59. package/components/upload.css +124 -124
  60. package/index.css +70 -70
  61. package/index.d.ts +9 -9
  62. package/package.json +1 -1
  63. package/print.css +88 -88
  64. package/reset.css +17 -17
  65. package/themes/dark.css +17 -17
  66. package/themes/default.css +14 -14
  67. package/tokens.css +310 -310
  68. package/transitions.css +158 -158
@@ -1,75 +1,75 @@
1
- .sg-switch {
2
- /* Off state uses a dedicated token so demos can rebrand without
3
- * touching `--sg-color-text-disabled` (which is also used by the
4
- * disabled visual state — overriding it makes every control look
5
- * disabled). */
6
- --sg-switch-bg: color-mix(in srgb, var(--sg-color-text) 25%, transparent);
7
- --sg-switch-bg-checked: var(--sg-color-primary);
8
- position: relative;
9
- display: inline-flex;
10
- align-items: center;
11
- min-width: 44px;
12
- height: 22px;
13
- padding: 0;
14
- border: none;
15
- border-radius: 11px;
16
- background: var(--sg-switch-bg);
17
- cursor: pointer;
18
- transition: background var(--sg-transition-duration) var(--sg-transition-timing);
19
- }
20
-
21
- .sg-switch-small {
22
- min-width: 28px;
23
- height: 16px;
24
- border-radius: 8px;
25
- }
26
-
27
- .sg-switch-checked {
28
- background: var(--sg-switch-bg-checked);
29
- }
30
-
31
- .sg-switch-disabled {
32
- opacity: 0.4;
33
- cursor: not-allowed;
34
- }
35
-
36
- .sg-switch-handle {
37
- position: absolute;
38
- left: 2px;
39
- width: 18px;
40
- height: 18px;
41
- border-radius: 50%;
42
- background: var(--sg-color-white);
43
- box-shadow: var(--sg-shadow-sm);
44
- transition: left var(--sg-transition-duration) var(--sg-transition-timing);
45
- }
46
-
47
- .sg-switch-small .sg-switch-handle {
48
- width: 12px;
49
- height: 12px;
50
- }
51
-
52
- .sg-switch-checked .sg-switch-handle {
53
- left: calc(100% - 20px);
54
- }
55
-
56
- .sg-switch-small.sg-switch-checked .sg-switch-handle {
57
- left: calc(100% - 14px);
58
- }
59
-
60
- .sg-switch-inner {
61
- display: flex;
62
- align-items: center;
63
- padding: 0 7px 0 25px;
64
- font-size: var(--sg-font-size-sm);
65
- color: var(--sg-color-white);
66
- white-space: nowrap;
67
- }
68
-
69
- .sg-switch-checked .sg-switch-inner {
70
- padding: 0 25px 0 7px;
71
- }
72
-
73
- .sg-switch-loading {
74
- --sg-spin-color: var(--sg-color-white);
75
- }
1
+ .sg-switch {
2
+ /* Off state uses a dedicated token so demos can rebrand without
3
+ * touching `--sg-color-text-disabled` (which is also used by the
4
+ * disabled visual state — overriding it makes every control look
5
+ * disabled). */
6
+ --sg-switch-bg: color-mix(in srgb, var(--sg-color-text) 25%, transparent);
7
+ --sg-switch-bg-checked: var(--sg-color-primary);
8
+ position: relative;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ min-width: 44px;
12
+ height: 22px;
13
+ padding: 0;
14
+ border: none;
15
+ border-radius: 11px;
16
+ background: var(--sg-switch-bg);
17
+ cursor: pointer;
18
+ transition: background var(--sg-transition-duration) var(--sg-transition-timing);
19
+ }
20
+
21
+ .sg-switch-small {
22
+ min-width: 28px;
23
+ height: 16px;
24
+ border-radius: 8px;
25
+ }
26
+
27
+ .sg-switch-checked {
28
+ background: var(--sg-switch-bg-checked);
29
+ }
30
+
31
+ .sg-switch-disabled {
32
+ opacity: 0.4;
33
+ cursor: not-allowed;
34
+ }
35
+
36
+ .sg-switch-handle {
37
+ position: absolute;
38
+ left: 2px;
39
+ width: 18px;
40
+ height: 18px;
41
+ border-radius: 50%;
42
+ background: var(--sg-color-white);
43
+ box-shadow: var(--sg-shadow-sm);
44
+ transition: left var(--sg-transition-duration) var(--sg-transition-timing);
45
+ }
46
+
47
+ .sg-switch-small .sg-switch-handle {
48
+ width: 12px;
49
+ height: 12px;
50
+ }
51
+
52
+ .sg-switch-checked .sg-switch-handle {
53
+ left: calc(100% - 20px);
54
+ }
55
+
56
+ .sg-switch-small.sg-switch-checked .sg-switch-handle {
57
+ left: calc(100% - 14px);
58
+ }
59
+
60
+ .sg-switch-inner {
61
+ display: flex;
62
+ align-items: center;
63
+ padding: 0 7px 0 25px;
64
+ font-size: var(--sg-font-size-sm);
65
+ color: var(--sg-color-white);
66
+ white-space: nowrap;
67
+ }
68
+
69
+ .sg-switch-checked .sg-switch-inner {
70
+ padding: 0 25px 0 7px;
71
+ }
72
+
73
+ .sg-switch-loading {
74
+ --sg-spin-color: var(--sg-color-white);
75
+ }
@@ -586,7 +586,15 @@
586
586
  border-right: none;
587
587
  }
588
588
 
589
- .sg-table-bordered .sg-table-grid {
589
+ /* The bordered frame + rounded-corner clip lives on the scroll container,
590
+ * NOT on the inner grid. `overflow: hidden` on the grid would sit between a
591
+ * sticky header cell and its real scroll ancestor (`.sg-table-scroll`),
592
+ * turning the grid into the nearest scroll container — which never scrolls,
593
+ * so `position: sticky` on the header silently stops working. Anchoring the
594
+ * clip on `.sg-table-scroll` keeps sticky headers pinned while still masking
595
+ * the corners. The `overflow: hidden` here is overridden inline by
596
+ * `Table.tsx` (to `auto`) on the axes that opt into scrolling. */
597
+ .sg-table-bordered .sg-table-scroll {
590
598
  border: 1px solid var(--sg-color-border);
591
599
  border-radius: var(--sg-border-radius);
592
600
  overflow: hidden;
@@ -1,137 +1,137 @@
1
- /* ── Shared ─────────────────────────────────────────────────────────── */
2
-
3
- .sg-tabs {
4
- font-size: var(--sg-font-size);
5
- }
6
-
7
- /* ── Size variants ──────────────────────────────────────────────────── */
8
-
9
- .sg-tabs-small {
10
- font-size: var(--sg-font-size-sm);
11
- }
12
-
13
- /* Extra `.sg-tabs` qualifier keeps these ahead of `.sg-tabs-line/card .sg-tabs-tab`
14
- * (same base specificity, defined later in the file). */
15
- .sg-tabs.sg-tabs-small .sg-tabs-tab {
16
- padding: var(--sg-padding-xs) var(--sg-padding-md);
17
- }
18
-
19
- .sg-tabs-large {
20
- font-size: var(--sg-font-size-lg);
21
- }
22
-
23
- .sg-tabs.sg-tabs-large .sg-tabs-tab {
24
- padding: var(--sg-padding-md) var(--sg-padding-xl);
25
- }
26
-
27
- .sg-tabs-tab-disabled {
28
- color: var(--sg-color-text-disabled);
29
- cursor: not-allowed;
30
- }
31
-
32
- .sg-tabs-tab-loading {
33
- display: inline-flex;
34
- align-items: center;
35
- gap: var(--sg-padding-xs);
36
- --sg-spin-color: var(--sg-color-text-tertiary);
37
- }
38
-
39
- .sg-tabs-tab-loading.sg-tabs-tab-active {
40
- --sg-spin-color: var(--sg-color-primary);
41
- }
42
-
43
- .sg-tabs-content {
44
- color: var(--sg-color-text);
45
- }
46
-
47
- /* ── Line (minimal underline) ───────────────────────────────────────── */
48
-
49
- .sg-tabs-line .sg-tabs-nav {
50
- display: flex;
51
- border-bottom: 1px solid var(--sg-color-border-secondary);
52
- margin-bottom: var(--sg-margin-md);
53
- }
54
-
55
- .sg-tabs-line .sg-tabs-tab {
56
- padding: var(--sg-padding-sm) var(--sg-padding-lg);
57
- cursor: pointer;
58
- color: var(--sg-color-text-secondary);
59
- border-bottom: 2px solid transparent;
60
- margin-bottom: -1px;
61
- transition: all var(--sg-transition-duration);
62
- user-select: none;
63
- }
64
-
65
- .sg-tabs-line .sg-tabs-tab:hover {
66
- color: var(--sg-color-primary-hover);
67
- }
68
-
69
- .sg-tabs-line .sg-tabs-tab-active {
70
- color: var(--sg-color-primary);
71
- border-bottom-color: var(--sg-color-primary);
72
- }
73
-
74
- /* ── Card (classic bordered tabs + panel) ─────────────────────────── */
75
-
76
- .sg-tabs-card {
77
- border: 1px solid var(--sg-color-border-secondary);
78
- border-radius: var(--sg-border-radius);
79
- overflow: hidden;
80
- background: var(--sg-color-bg);
81
- }
82
-
83
- .sg-tabs-card .sg-tabs-nav {
84
- display: flex;
85
- flex-wrap: wrap;
86
- gap: 0;
87
- margin: 0;
88
- padding: 4px 4px 0;
89
- background: var(--sg-color-bg-secondary);
90
- border-bottom: none;
91
- }
92
-
93
- .sg-tabs-card .sg-tabs-tab {
94
- /* Reserve the same vertical space for active and idle tabs so flipping
95
- * between them never resizes the nav strip (no more 1px jitter on tab
96
- * switch). The bottom border is always drawn but transparent until the
97
- * tab becomes active. */
98
- padding: var(--sg-padding-sm) var(--sg-padding-lg);
99
- cursor: pointer;
100
- margin: 0 2px -1px 0;
101
- color: var(--sg-color-text-secondary);
102
- border: 1px solid transparent;
103
- border-bottom: 1px solid transparent;
104
- border-radius: var(--sg-border-radius-sm) var(--sg-border-radius-sm) 0 0;
105
- background: transparent;
106
- transition:
107
- color var(--sg-transition-duration),
108
- background var(--sg-transition-duration),
109
- border-color var(--sg-transition-duration);
110
- user-select: none;
111
- position: relative;
112
- z-index: 0;
113
- }
114
-
115
- .sg-tabs-card .sg-tabs-tab:hover {
116
- color: var(--sg-color-primary-hover);
117
- background: color-mix(in srgb, var(--sg-color-bg) 55%, var(--sg-color-bg-secondary));
118
- }
119
-
120
- .sg-tabs-card .sg-tabs-tab-active {
121
- color: var(--sg-color-primary);
122
- background: var(--sg-color-bg);
123
- border-color: var(--sg-color-border-secondary);
124
- border-bottom-color: var(--sg-color-bg);
125
- z-index: 1;
126
- }
127
-
128
- .sg-tabs-card .sg-tabs-tab-active:hover {
129
- color: var(--sg-color-primary);
130
- }
131
-
132
- .sg-tabs-card .sg-tabs-content {
133
- margin: 0;
134
- padding: var(--sg-padding-md) var(--sg-padding-lg);
135
- border-top: 1px solid var(--sg-color-border-secondary);
136
- min-height: 0;
137
- }
1
+ /* ── Shared ─────────────────────────────────────────────────────────── */
2
+
3
+ .sg-tabs {
4
+ font-size: var(--sg-font-size);
5
+ }
6
+
7
+ /* ── Size variants ──────────────────────────────────────────────────── */
8
+
9
+ .sg-tabs-small {
10
+ font-size: var(--sg-font-size-sm);
11
+ }
12
+
13
+ /* Extra `.sg-tabs` qualifier keeps these ahead of `.sg-tabs-line/card .sg-tabs-tab`
14
+ * (same base specificity, defined later in the file). */
15
+ .sg-tabs.sg-tabs-small .sg-tabs-tab {
16
+ padding: var(--sg-padding-xs) var(--sg-padding-md);
17
+ }
18
+
19
+ .sg-tabs-large {
20
+ font-size: var(--sg-font-size-lg);
21
+ }
22
+
23
+ .sg-tabs.sg-tabs-large .sg-tabs-tab {
24
+ padding: var(--sg-padding-md) var(--sg-padding-xl);
25
+ }
26
+
27
+ .sg-tabs-tab-disabled {
28
+ color: var(--sg-color-text-disabled);
29
+ cursor: not-allowed;
30
+ }
31
+
32
+ .sg-tabs-tab-loading {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ gap: var(--sg-padding-xs);
36
+ --sg-spin-color: var(--sg-color-text-tertiary);
37
+ }
38
+
39
+ .sg-tabs-tab-loading.sg-tabs-tab-active {
40
+ --sg-spin-color: var(--sg-color-primary);
41
+ }
42
+
43
+ .sg-tabs-content {
44
+ color: var(--sg-color-text);
45
+ }
46
+
47
+ /* ── Line (minimal underline) ───────────────────────────────────────── */
48
+
49
+ .sg-tabs-line .sg-tabs-nav {
50
+ display: flex;
51
+ border-bottom: 1px solid var(--sg-color-border-secondary);
52
+ margin-bottom: var(--sg-margin-md);
53
+ }
54
+
55
+ .sg-tabs-line .sg-tabs-tab {
56
+ padding: var(--sg-padding-sm) var(--sg-padding-lg);
57
+ cursor: pointer;
58
+ color: var(--sg-color-text-secondary);
59
+ border-bottom: 2px solid transparent;
60
+ margin-bottom: -1px;
61
+ transition: all var(--sg-transition-duration);
62
+ user-select: none;
63
+ }
64
+
65
+ .sg-tabs-line .sg-tabs-tab:hover {
66
+ color: var(--sg-color-primary-hover);
67
+ }
68
+
69
+ .sg-tabs-line .sg-tabs-tab-active {
70
+ color: var(--sg-color-primary);
71
+ border-bottom-color: var(--sg-color-primary);
72
+ }
73
+
74
+ /* ── Card (classic bordered tabs + panel) ─────────────────────────── */
75
+
76
+ .sg-tabs-card {
77
+ border: 1px solid var(--sg-color-border-secondary);
78
+ border-radius: var(--sg-border-radius);
79
+ overflow: hidden;
80
+ background: var(--sg-color-bg);
81
+ }
82
+
83
+ .sg-tabs-card .sg-tabs-nav {
84
+ display: flex;
85
+ flex-wrap: wrap;
86
+ gap: 0;
87
+ margin: 0;
88
+ padding: 4px 4px 0;
89
+ background: var(--sg-color-bg-secondary);
90
+ border-bottom: none;
91
+ }
92
+
93
+ .sg-tabs-card .sg-tabs-tab {
94
+ /* Reserve the same vertical space for active and idle tabs so flipping
95
+ * between them never resizes the nav strip (no more 1px jitter on tab
96
+ * switch). The bottom border is always drawn but transparent until the
97
+ * tab becomes active. */
98
+ padding: var(--sg-padding-sm) var(--sg-padding-lg);
99
+ cursor: pointer;
100
+ margin: 0 2px -1px 0;
101
+ color: var(--sg-color-text-secondary);
102
+ border: 1px solid transparent;
103
+ border-bottom: 1px solid transparent;
104
+ border-radius: var(--sg-border-radius-sm) var(--sg-border-radius-sm) 0 0;
105
+ background: transparent;
106
+ transition:
107
+ color var(--sg-transition-duration),
108
+ background var(--sg-transition-duration),
109
+ border-color var(--sg-transition-duration);
110
+ user-select: none;
111
+ position: relative;
112
+ z-index: 0;
113
+ }
114
+
115
+ .sg-tabs-card .sg-tabs-tab:hover {
116
+ color: var(--sg-color-primary-hover);
117
+ background: color-mix(in srgb, var(--sg-color-bg) 55%, var(--sg-color-bg-secondary));
118
+ }
119
+
120
+ .sg-tabs-card .sg-tabs-tab-active {
121
+ color: var(--sg-color-primary);
122
+ background: var(--sg-color-bg);
123
+ border-color: var(--sg-color-border-secondary);
124
+ border-bottom-color: var(--sg-color-bg);
125
+ z-index: 1;
126
+ }
127
+
128
+ .sg-tabs-card .sg-tabs-tab-active:hover {
129
+ color: var(--sg-color-primary);
130
+ }
131
+
132
+ .sg-tabs-card .sg-tabs-content {
133
+ margin: 0;
134
+ padding: var(--sg-padding-md) var(--sg-padding-lg);
135
+ border-top: 1px solid var(--sg-color-border-secondary);
136
+ min-height: 0;
137
+ }
@@ -1,61 +1,61 @@
1
- .sg-tag {
2
- display: inline-flex;
3
- align-items: center;
4
- gap: 4px;
5
- padding: 0 var(--sg-padding-sm);
6
- height: 22px;
7
- font-size: var(--sg-font-size-sm);
8
- line-height: 20px;
9
- white-space: nowrap;
10
- border-radius: var(--sg-border-radius-sm);
11
- border: 1px solid var(--sg-color-border);
12
- background: var(--sg-color-bg-secondary);
13
- color: var(--sg-color-text);
14
- transition: all var(--sg-transition-duration) var(--sg-transition-timing);
15
- }
16
-
17
- .sg-tag-borderless {
18
- border-color: transparent;
19
- }
20
-
21
- .sg-tag-default {
22
- background: var(--sg-color-bg-secondary);
23
- border-color: var(--sg-color-border);
24
- color: var(--sg-color-text);
25
- }
26
-
27
- .sg-tag-success {
28
- background: var(--sg-color-success-bg);
29
- border-color: var(--sg-color-success);
30
- color: var(--sg-color-success);
31
- }
32
-
33
- .sg-tag-error {
34
- background: var(--sg-color-error-bg);
35
- border-color: var(--sg-color-error);
36
- color: var(--sg-color-error);
37
- }
38
-
39
- .sg-tag-warning {
40
- background: var(--sg-color-warning-bg);
41
- border-color: var(--sg-color-warning);
42
- color: var(--sg-color-warning);
43
- }
44
-
45
- .sg-tag-processing {
46
- background: var(--sg-color-primary-bg);
47
- border-color: var(--sg-color-primary);
48
- color: var(--sg-color-primary);
49
- }
50
-
51
- .sg-tag-close {
52
- cursor: pointer;
53
- font-size: 10px;
54
- color: inherit;
55
- opacity: 0.6;
56
- transition: opacity var(--sg-transition-duration) var(--sg-transition-timing);
57
- }
58
-
59
- .sg-tag-close:hover {
60
- opacity: 1;
61
- }
1
+ .sg-tag {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: 4px;
5
+ padding: 0 var(--sg-padding-sm);
6
+ height: 22px;
7
+ font-size: var(--sg-font-size-sm);
8
+ line-height: 20px;
9
+ white-space: nowrap;
10
+ border-radius: var(--sg-border-radius-sm);
11
+ border: 1px solid var(--sg-color-border);
12
+ background: var(--sg-color-bg-secondary);
13
+ color: var(--sg-color-text);
14
+ transition: all var(--sg-transition-duration) var(--sg-transition-timing);
15
+ }
16
+
17
+ .sg-tag-borderless {
18
+ border-color: transparent;
19
+ }
20
+
21
+ .sg-tag-default {
22
+ background: var(--sg-color-bg-secondary);
23
+ border-color: var(--sg-color-border);
24
+ color: var(--sg-color-text);
25
+ }
26
+
27
+ .sg-tag-success {
28
+ background: var(--sg-color-success-bg);
29
+ border-color: var(--sg-color-success);
30
+ color: var(--sg-color-success);
31
+ }
32
+
33
+ .sg-tag-error {
34
+ background: var(--sg-color-error-bg);
35
+ border-color: var(--sg-color-error);
36
+ color: var(--sg-color-error);
37
+ }
38
+
39
+ .sg-tag-warning {
40
+ background: var(--sg-color-warning-bg);
41
+ border-color: var(--sg-color-warning);
42
+ color: var(--sg-color-warning);
43
+ }
44
+
45
+ .sg-tag-processing {
46
+ background: var(--sg-color-primary-bg);
47
+ border-color: var(--sg-color-primary);
48
+ color: var(--sg-color-primary);
49
+ }
50
+
51
+ .sg-tag-close {
52
+ cursor: pointer;
53
+ font-size: 10px;
54
+ color: inherit;
55
+ opacity: 0.6;
56
+ transition: opacity var(--sg-transition-duration) var(--sg-transition-timing);
57
+ }
58
+
59
+ .sg-tag-close:hover {
60
+ opacity: 1;
61
+ }
@@ -1,22 +1,22 @@
1
- .sg-textarea-wrapper {
2
- position: relative;
3
- display: block;
4
- }
5
-
6
- .sg-textarea-wrapper-loading {
7
- --sg-spin-color: var(--sg-color-text-tertiary);
8
- }
9
-
10
- .sg-textarea-wrapper .sg-spin {
11
- position: absolute;
12
- right: var(--sg-padding-sm);
13
- top: var(--sg-padding-sm);
14
- }
15
-
16
- .sg-textarea-count {
17
- display: block;
18
- text-align: right;
19
- font-size: var(--sg-font-size-sm);
20
- color: var(--sg-color-text-tertiary);
21
- margin-top: var(--sg-margin-xs);
22
- }
1
+ .sg-textarea-wrapper {
2
+ position: relative;
3
+ display: block;
4
+ }
5
+
6
+ .sg-textarea-wrapper-loading {
7
+ --sg-spin-color: var(--sg-color-text-tertiary);
8
+ }
9
+
10
+ .sg-textarea-wrapper .sg-spin {
11
+ position: absolute;
12
+ right: var(--sg-padding-sm);
13
+ top: var(--sg-padding-sm);
14
+ }
15
+
16
+ .sg-textarea-count {
17
+ display: block;
18
+ text-align: right;
19
+ font-size: var(--sg-font-size-sm);
20
+ color: var(--sg-color-text-tertiary);
21
+ margin-top: var(--sg-margin-xs);
22
+ }