@stn-uiux/pub-ui 0.1.58 → 0.1.59
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/dist/{chunk-7ASY5YJ6.js → chunk-36BAGMYT.js} +3 -3
- package/dist/chunk-36BAGMYT.js.map +1 -0
- package/dist/chunk-A5KLX6NX.js +1 -0
- package/dist/{chunk-UPXSNRIJ.js → chunk-AOS3IX4T.js} +2 -2
- package/dist/chunk-AOS3IX4T.js.map +1 -0
- package/dist/{chunk-XNGYRPZI.js → chunk-CHJATVOT.js} +4 -4
- package/dist/{chunk-XNGYRPZI.js.map → chunk-CHJATVOT.js.map} +1 -1
- package/dist/{chunk-TDLGKV4C.js → chunk-EQTZA7I2.js} +1 -14
- package/dist/chunk-EQTZA7I2.js.map +1 -0
- package/dist/{chunk-EDXSK54U.js → chunk-H4ZJQ5YW.js} +2 -2
- package/dist/{chunk-EQVFEZEQ.js → chunk-JPILTFLI.js} +5 -5
- package/dist/chunk-JPILTFLI.js.map +1 -0
- package/dist/{chunk-J46EPVSY.js → chunk-SKZOEF3H.js} +2 -2
- package/dist/chunk-SQJPE6HH.js +12 -0
- package/dist/chunk-SQJPE6HH.js.map +1 -0
- package/dist/{chunk-PVF77NHZ.js → chunk-XEG4WDUD.js} +4 -17
- package/dist/chunk-XEG4WDUD.js.map +1 -0
- package/dist/cli.js +9 -9
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.js +23 -19
- package/dist/data/stnBreadcrumb.js +3 -3
- package/dist/data/stnHeader.d.ts +2 -2
- package/dist/data/stnHeader.js +3 -3
- package/dist/data/stnLayout.d.ts +1 -1
- package/dist/data/stnLayout.js +1 -1
- package/dist/data/stnScroll.d.ts +1 -1
- package/dist/data/stnScroll.js +1 -1
- package/dist/data/stnSideNavItem.js +3 -3
- package/dist/data/stnStatus.d.ts +11 -0
- package/dist/data/stnStatus.js +7 -0
- package/dist/data/stnStatus.js.map +1 -0
- package/dist/data/stnSystemIcons.d.ts +1 -1
- package/dist/data/stnSystemIcons.js +2 -2
- package/dist/data/stnSystemIconsData.generated.js +1 -1
- package/dist/data/stnTree.d.ts +1 -1
- package/dist/data/stnTree.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +23 -19
- package/package.json +1 -1
- package/styles/components/stn-btn.css +9 -0
- package/styles/components/stn-dropdown.css +11 -4
- package/styles/components/stn-label-prefix.css +37 -0
- package/styles/components/stn-pagination.css +113 -5
- package/styles/components/stn-scroll.css +51 -66
- package/styles/components/stn-segmented.css +3 -1
- package/styles/components/stn-status.css +853 -0
- package/styles/components/stn-table.css +32 -5
- package/styles/components/stn-text-field.css +30 -35
- package/styles/layouts/stn-container.css +9 -0
- package/styles/layouts/stn-layer1-content.css +105 -0
- package/styles/patterns/stn-alert-center.css +29 -4
- package/styles/patterns/stn-header.css +7 -145
- package/styles/patterns/stn-section-side.css +64 -0
- package/styles/patterns/stn-tree.css +73 -39
- package/styles/style-pub.css +1 -1
- package/styles/tokens/stn-breakpoint.css +12 -0
- package/styles/tokens/stn-colors-semantic.css +6 -6
- package/styles/tokens/stn-radius-semantic.css +1 -1
- package/dist/chunk-7ASY5YJ6.js.map +0 -1
- package/dist/chunk-EQVFEZEQ.js.map +0 -1
- package/dist/chunk-LHV26PEP.js +0 -1
- package/dist/chunk-PVF77NHZ.js.map +0 -1
- package/dist/chunk-TDLGKV4C.js.map +0 -1
- package/dist/chunk-UPXSNRIJ.js.map +0 -1
- package/styles/@assets/svg/system/3d/print.png +0 -0
- package/styles/@assets/svg/system/3d/print_1.png +0 -0
- package/styles/@assets/svg/system/3d/server1.png +0 -0
- package/styles/@assets/svg/system/3d/server1_1.png +0 -0
- package/styles/@assets/svg/system/3d/server2.png +0 -0
- package/styles/@assets/svg/system/3d/server2_1.png +0 -0
- package/styles/@assets/svg/system/3d/signal.png +0 -0
- package/styles/@assets/svg/system/3d/signal_1.png +0 -0
- package/styles/@assets/svg/system/3d/wifi.png +0 -0
- package/styles/@assets/svg/system/3d/wifi_1.png +0 -0
- package/styles/@assets/svg/system/ai_agent.png +0 -0
- package/styles/@assets/svg/system/line/input.svg +0 -3
- package/styles/@assets/svg/system/line/radio.svg +0 -3
- package/styles/components/stn-severity-badge.css +0 -227
- /package/dist/{chunk-LHV26PEP.js.map → chunk-A5KLX6NX.js.map} +0 -0
- /package/dist/{chunk-EDXSK54U.js.map → chunk-H4ZJQ5YW.js.map} +0 -0
- /package/dist/{chunk-J46EPVSY.js.map → chunk-SKZOEF3H.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/stnTree.ts"],"sourcesContent":["/**\n * Folder structure tree — Infomap Figma node 40000042:210359 · section-side 40000040:102539\n */\n\nexport type StnTreeDemoNode = {\n id: string\n label: string\n kind?: 'root' | 'folder' | 'server'\n children?: StnTreeDemoNode[]\n}\n\nexport const STN_TREE_FIGMA = '40000042:210359'\n\n/** section-side shell — light / dark */\nexport const STN_TREE_SECTION_SIDE_FIGMA = {\n light: '40000042:187762',\n dark: '40000040:102539',\n} as const\n\nexport const STN_TREE_INTRO =\n 'LNB 사이드바 및 팝업 내부에서 계층형 폴더/파일 구조를 탐색하는 트리 내비게이션 패턴입니다. 폴더/파일 노드 선택 및 뎁스별 접기·펼치기 기능을 지원합니다.'\n\n/** Figma 40000040:102539 section-side tree content */\nexport const STN_TREE_DEMO: StnTreeDemoNode[] = [\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n {\n id: 'group-a',\n label: '그룹 서버',\n kind: 'folder',\n children: [\n {\n id: 'equip',\n label: '장비',\n kind: 'folder',\n children: [\n { id: 'srv-1', label: 'grid-pro-01', kind: 'server' },\n { id: 'srv-2', label: 'grid-pro-02', kind: 'server' },\n { id: 'srv-3', label: 'grid-pro-03', kind: 'server' },\n { id: 'srv-4', label: 'grid-premium-01', kind: 'server' },\n { id: 'srv-5', label: 'grid-premium-02', kind: 'server' },\n ],\n },\n ],\n },\n {\n id: 'group-b',\n label: '그룹 서버 (백업)',\n kind: 'folder',\n children: [\n { id: 'srv-b1', label: 'auth-server-01', kind: 'server' },\n { id: 'srv-b2', label: 'auth-server-02', kind: 'server' },\n { id: 'srv-b3', label: 'db-cluster-01', kind: 'server' },\n { id: 'srv-b4', label: 'db-cluster-02', kind: 'server' },\n { id: 'srv-b5', label: 'cache-redis-01', kind: 'server' },\n ],\n },\n ],\n },\n]\n\nexport const STN_TREE_REACT_EXAMPLE = `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree\n heading=\"FOLDER STRUCTURE\"\n nodes={[\n {\n id: 'root',\n label: 'Root',\n kind: 'root',\n children: [\n { id: 'group', label: '그룹 서버', kind: 'folder', children: [\n { id: 'srv-1', label: 'grid-pro', kind: 'server' },\n ]},\n ],\n },\n ]}\n defaultExpandedIds={['root', 'group']}\n defaultSelectedId=\"srv-1\"\n onSelect={(id) => console.log(id)}\n />\n</StnSectionSide>`\n\nexport const STN_TREE_USAGE_HTML = `<!-- StnSectionSide + StnTree · stn-section-side.css · stn-tree.css -->\n<aside class=\"stn-section-side stn-section-side--fill\">\n <div class=\"stn-scroll stn-section-side__body stn-scroll--vertical\">\n <div class=\"stn-tree\">\n <p class=\"stn-tree__heading\">FOLDER STRUCTURE</p>\n <div class=\"stn-tree__rows\" role=\"tree\">\n <div class=\"stn-tree__row stn-tree__row--root\" data-depth=\"0\" role=\"treeitem\">\n <span class=\"stn-tree__label\">Root</span>\n </div>\n </div>\n </div>\n </div>\n</aside>`\n\nexport type StnTreePatternPlaygroundConfig = {\n heading: string\n showHeading: boolean\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_DEFAULT: StnTreePatternPlaygroundConfig = {\n heading: 'FOLDER STRUCTURE',\n showHeading: true,\n}\n\nexport const STN_TREE_PATTERN_PLAYGROUND_PROPERTIES: {\n name: string\n values: string\n note?: string\n}[] = [\n { name: 'heading', values: 'string', note: 'StnTree heading · 빈 문자열이면 숨김' },\n { name: 'showHeading', values: 'true | false', note: '섹션 제목 표시' },\n { name: 'fill', values: 'true', note: 'StnSectionSide — list view LNB 열 높이 채움 (고정)' },\n { name: 'nodes', values: 'StnTreeItem[]', note: '데모 — STN_TREE_DEMO' },\n { name: 'defaultExpandedIds', values: 'string[]', note: '초기 펼침 노드 id' },\n { name: 'selectedId', values: 'string | null', note: '선택 행 · onSelect' },\n]\n\nexport function describeTreePatternReact(config: StnTreePatternPlaygroundConfig): string {\n const headingProp = config.showHeading\n ? `\\n heading=${JSON.stringify(config.heading)}`\n : '\\n heading=\"\"'\n return `import { StnSectionSide, StnTree } from '@stn-uiux/pub-ui-react'\n\n<StnSectionSide fill>\n <StnTree${headingProp}\n nodes={STN_TREE_DEMO}\n defaultExpandedIds={['root', 'group-a', 'equip', 'group-b']}\n selectedId={selectedId}\n onSelect={setSelectedId}\n />\n</StnSectionSide>`\n}\n\nexport const STN_TREE_PARTS = [\n { part: '.stn-tree', role: '트리 래퍼 (`StnTree`)' },\n { part: '.stn-tree__heading', role: '섹션 제목 · 13 bold gray-450' },\n { part: '.stn-tree__row', role: '행 24px · role=treeitem · data-depth' },\n { part: '.stn-tree__cell--guide', role: 'vertical_line · tree_connector(_midium)' },\n { part: '.stn-tree__toggle', role: '펼침/접힘 chevron (arrow-left 12)' },\n { part: '.stn-tree__icon--root / --folder / --server', role: '노드 종류별 16px 아이콘' },\n { part: '.stn-tree__row.is-selected', role: '선택 배경 `--stn-tree-selected`' },\n { part: '.stn-tree__row.is-hover / :hover', role: '호버 배경' },\n { part: '.stn-tree__row.is-pressed / :active', role: '프레스 배경' },\n { part: '.stn-section-side', role: '사이드 패널 셸 — Patterns Tree 조립' },\n { part: '.stn-scroll', role: 'Pub 스크롤 — Patterns Tree 조립' },\n] as const\n"],"mappings":"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","names":[]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
@charset "utf-8";
|
|
2
|
-
/**
|
|
3
|
-
* StnSeverityBadge — 관제 알람 심각도 뱃지 및 필터
|
|
4
|
-
*
|
|
5
|
-
* 위험도 클래스: critical · major · minor · warning
|
|
6
|
-
* 크기 클래스: sm · md · lg
|
|
7
|
-
*
|
|
8
|
-
* Modes:
|
|
9
|
-
* - `badge`: 상태 표시용 뱃지 (height: var(--stn-severity-badge-height), font: 11px)
|
|
10
|
-
* - `filter`: 대시보드 다중 필터 토글용 (width: var(--stn-severity-filter-width), height: var(--stn-severity-filter-height), font: 14px)
|
|
11
|
-
*
|
|
12
|
-
* 100% 시맨틱 토큰 SSOT 기반 구축
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
.stn-severity-filter-group {
|
|
16
|
-
display: inline-flex;
|
|
17
|
-
align-items: center;
|
|
18
|
-
gap: var(--stn-space-8, 8px);
|
|
19
|
-
flex-wrap: wrap;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.stn-severity-badge {
|
|
23
|
-
box-sizing: border-box;
|
|
24
|
-
display: inline-flex;
|
|
25
|
-
align-items: center;
|
|
26
|
-
justify-content: center;
|
|
27
|
-
gap: var(--stn-space-2, 2px);
|
|
28
|
-
border-radius: var(--stn-radius-4, 4px);
|
|
29
|
-
font-family: var(--stn-font-body, Pretendard, sans-serif);
|
|
30
|
-
line-height: 1.2;
|
|
31
|
-
user-select: none;
|
|
32
|
-
vertical-align: middle;
|
|
33
|
-
white-space: nowrap;
|
|
34
|
-
transition: opacity 0.15s ease, filter 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* Shape (기본 4px rounded vs 9999px round 알약형) */
|
|
38
|
-
.stn-severity-badge.round,
|
|
39
|
-
.stn-severity-badge.rounded-full {
|
|
40
|
-
border-radius: var(--stn-radius-circle, 9999px);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/* 1. 기본 뱃지 모드 (Badge - Display: sm / md / lg) */
|
|
44
|
-
.stn-severity-badge.badge,
|
|
45
|
-
.stn-severity-badge:not(.filter) {
|
|
46
|
-
height: var(--stn-severity-badge-height-md, var(--stn-severity-badge-height, var(--stn-size-20, 20px)));
|
|
47
|
-
padding: var(--stn-severity-badge-padding-md, var(--stn-severity-badge-padding, var(--stn-space-2, 2px) var(--stn-space-8, 8px)));
|
|
48
|
-
font-size: var(--stn-font-size-11, 11px);
|
|
49
|
-
font-weight: var(--stn-font-weight-bold, 700);
|
|
50
|
-
letter-spacing: -0.1px;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.stn-severity-badge.badge .stn-severity-badge__icon,
|
|
54
|
-
.stn-severity-badge:not(.filter) .stn-severity-badge__icon {
|
|
55
|
-
width: var(--stn-severity-badge-icon-size-md, var(--stn-severity-badge-icon-size, var(--stn-size-14, 14px)));
|
|
56
|
-
height: var(--stn-severity-badge-icon-size-md, var(--stn-severity-badge-icon-size, var(--stn-size-14, 14px)));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/* Sizes: sm (18px) */
|
|
60
|
-
.stn-severity-badge.sm {
|
|
61
|
-
height: var(--stn-severity-badge-height-sm, var(--stn-size-18, 18px));
|
|
62
|
-
padding: var(--stn-severity-badge-padding-sm, var(--stn-space-2, 2px) var(--stn-space-6, 6px));
|
|
63
|
-
font-size: var(--stn-font-size-10, 10px);
|
|
64
|
-
gap: var(--stn-space-2, 2px);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.stn-severity-badge.sm .stn-severity-badge__icon {
|
|
68
|
-
width: var(--stn-severity-badge-icon-size-sm, var(--stn-size-12, 12px));
|
|
69
|
-
height: var(--stn-severity-badge-icon-size-sm, var(--stn-size-12, 12px));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/* Sizes: md (20px - 기본) */
|
|
73
|
-
.stn-severity-badge.md {
|
|
74
|
-
height: var(--stn-severity-badge-height-md, var(--stn-size-20, 20px));
|
|
75
|
-
padding: var(--stn-severity-badge-padding-md, var(--stn-space-2, 2px) var(--stn-space-8, 8px));
|
|
76
|
-
font-size: var(--stn-font-size-11, 11px);
|
|
77
|
-
gap: var(--stn-space-2, 2px);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.stn-severity-badge.md .stn-severity-badge__icon {
|
|
81
|
-
width: var(--stn-severity-badge-icon-size-md, var(--stn-size-14, 14px));
|
|
82
|
-
height: var(--stn-severity-badge-icon-size-md, var(--stn-size-14, 14px));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/* Sizes: lg (24px) */
|
|
86
|
-
.stn-severity-badge.lg {
|
|
87
|
-
height: var(--stn-severity-badge-height-lg, var(--stn-size-24, 24px));
|
|
88
|
-
padding: var(--stn-severity-badge-padding-lg, var(--stn-space-4, 4px) var(--stn-space-10, 10px));
|
|
89
|
-
font-size: var(--stn-font-size-12, 12px);
|
|
90
|
-
gap: var(--stn-space-4, 4px);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.stn-severity-badge.lg .stn-severity-badge__icon {
|
|
94
|
-
width: var(--stn-severity-badge-icon-size-lg, var(--stn-size-16, 16px));
|
|
95
|
-
height: var(--stn-severity-badge-icon-size-lg, var(--stn-size-16, 16px));
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/* 2. 아이콘 전용 모드 (Icon-Only - 정사각 4px / 원형 9999px) */
|
|
99
|
-
.stn-severity-badge.icon-only {
|
|
100
|
-
width: var(--stn-severity-badge-height-md, var(--stn-size-20, 20px));
|
|
101
|
-
height: var(--stn-severity-badge-height-md, var(--stn-size-20, 20px));
|
|
102
|
-
padding: 0;
|
|
103
|
-
gap: 0;
|
|
104
|
-
flex-shrink: 0;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.stn-severity-badge.icon-only.sm {
|
|
108
|
-
width: var(--stn-severity-badge-height-sm, var(--stn-size-18, 18px));
|
|
109
|
-
height: var(--stn-severity-badge-height-sm, var(--stn-size-18, 18px));
|
|
110
|
-
padding: 0;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.stn-severity-badge.icon-only.md {
|
|
114
|
-
width: var(--stn-severity-badge-height-md, var(--stn-size-20, 20px));
|
|
115
|
-
height: var(--stn-severity-badge-height-md, var(--stn-size-20, 20px));
|
|
116
|
-
padding: 0;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.stn-severity-badge.icon-only.lg {
|
|
120
|
-
width: var(--stn-severity-badge-height-lg, var(--stn-size-24, 24px));
|
|
121
|
-
height: var(--stn-severity-badge-height-lg, var(--stn-size-24, 24px));
|
|
122
|
-
padding: 0;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.stn-severity-badge.icon-only .stn-severity-badge__label {
|
|
126
|
-
display: none;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* 3. 필터 모드 (Filter Toggle - 52px x 26px) */
|
|
130
|
-
.stn-severity-badge.filter {
|
|
131
|
-
width: var(--stn-severity-filter-width, var(--stn-size-52, 52px));
|
|
132
|
-
height: var(--stn-severity-filter-height, var(--stn-size-26, 26px));
|
|
133
|
-
padding: var(--stn-space-4, 4px);
|
|
134
|
-
font-size: var(--stn-font-size-14, 14px);
|
|
135
|
-
font-weight: var(--stn-font-weight-bold, 700);
|
|
136
|
-
cursor: pointer;
|
|
137
|
-
background: transparent;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.stn-severity-badge.filter .stn-severity-badge__icon {
|
|
141
|
-
width: var(--stn-severity-icon-size, var(--stn-size-16, 16px));
|
|
142
|
-
height: var(--stn-severity-icon-size, var(--stn-size-16, 16px));
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.stn-severity-badge.filter:hover {
|
|
146
|
-
filter: brightness(1.15);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.stn-severity-badge.filter:active {
|
|
150
|
-
filter: brightness(0.92);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/* 필터 비활성 상태 */
|
|
154
|
-
.stn-severity-badge.filter.is-inactive,
|
|
155
|
-
.stn-severity-badge.filter:not(.is-active) {
|
|
156
|
-
opacity: 0.35;
|
|
157
|
-
filter: grayscale(0.5);
|
|
158
|
-
box-shadow: none !important;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.stn-severity-badge.filter.is-inactive:hover,
|
|
162
|
-
.stn-severity-badge.filter:not(.is-active):hover {
|
|
163
|
-
opacity: 0.65;
|
|
164
|
-
filter: grayscale(0.2);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/* 아이콘 래퍼 */
|
|
168
|
-
.stn-severity-badge__icon {
|
|
169
|
-
display: inline-flex;
|
|
170
|
-
align-items: center;
|
|
171
|
-
justify-content: center;
|
|
172
|
-
flex-shrink: 0;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.stn-severity-badge__icon img,
|
|
176
|
-
.stn-severity-badge__icon svg {
|
|
177
|
-
display: block;
|
|
178
|
-
width: 100%;
|
|
179
|
-
height: 100%;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
.stn-severity-badge__label {
|
|
183
|
-
display: inline-block;
|
|
184
|
-
line-height: 1;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/* ==========================================================================
|
|
188
|
-
3. 심각도 등급별 색상 (시맨틱 토큰 연동)
|
|
189
|
-
========================================================================== */
|
|
190
|
-
|
|
191
|
-
.stn-severity-badge.critical {
|
|
192
|
-
--stn-badge-glow-color: var(--stn-severity-glow);
|
|
193
|
-
background: var(--stn-severity-critical-bg);
|
|
194
|
-
border: 1px solid var(--stn-severity-critical-border);
|
|
195
|
-
color: var(--stn-severity-fg);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.stn-severity-badge.major {
|
|
199
|
-
--stn-badge-glow-color: var(--stn-severity-glow-major);
|
|
200
|
-
background: var(--stn-severity-major-bg);
|
|
201
|
-
border: 1px solid var(--stn-severity-major-border);
|
|
202
|
-
color: var(--stn-severity-fg);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
.stn-severity-badge.minor {
|
|
206
|
-
--stn-badge-glow-color: var(--stn-severity-glow-minor);
|
|
207
|
-
background: var(--stn-severity-minor-bg);
|
|
208
|
-
border: 1px solid var(--stn-severity-minor-border);
|
|
209
|
-
color: var(--stn-severity-fg);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.stn-severity-badge.warning {
|
|
213
|
-
--stn-badge-glow-color: var(--stn-severity-glow-warning);
|
|
214
|
-
background: var(--stn-severity-warning-bg);
|
|
215
|
-
border: 1px solid var(--stn-severity-warning-border);
|
|
216
|
-
color: var(--stn-severity-fg);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
/* ==========================================================================
|
|
220
|
-
4. Glow 발광 변형 (.glow)
|
|
221
|
-
========================================================================== */
|
|
222
|
-
|
|
223
|
-
.stn-severity-badge.glow {
|
|
224
|
-
box-shadow: 0 0 var(--stn-space-8, 8px) var(--stn-badge-glow-color);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|