@konce-pt/styles 0.11.2 → 0.14.0
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/README.md +11 -11
- package/components.css +2004 -263
- package/index.css +27 -3
- package/package.json +4 -3
- package/src/index.scss +36 -12
package/index.css
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
/*
|
|
3
|
-
* @konce-pt/styles
|
|
3
|
+
* @konce-pt/styles - bazowy CSS Koncept UI (źródło SCSS -> index.css).
|
|
4
4
|
* Kolejność warstw kaskady: reset < base < components < utilities.
|
|
5
5
|
* Komponenty (@konce-pt/angular) deklarują style w warstwie `kpt.components`,
|
|
6
6
|
* dzięki czemu aplikacja łatwo je nadpisuje bez wojny specyficzności.
|
|
7
7
|
*
|
|
8
8
|
* Wymaga wcześniejszego załadowania tokenów (custom properties --kpt-*).
|
|
9
|
-
* Angular CLI
|
|
9
|
+
* Angular CLI - angular.json -> styles[] (kolejność: tokeny, potem ten plik):
|
|
10
10
|
* node_modules/@konce-pt/tokens/dist/css/tokens.css
|
|
11
11
|
* node_modules/@konce-pt/tokens/dist/css/tokens.dark.css
|
|
12
12
|
* node_modules/@konce-pt/styles/index.css
|
|
13
|
-
* Vite/webpack
|
|
13
|
+
* Vite/webpack - import '@konce-pt/tokens/css'; import '@konce-pt/tokens/css/dark'; import '@konce-pt/styles';
|
|
14
14
|
*/
|
|
15
15
|
@layer kpt.reset, kpt.base, kpt.components, kpt.utilities;
|
|
16
16
|
@layer kpt.reset {
|
|
@@ -143,6 +143,30 @@
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
@layer kpt.components {
|
|
146
|
+
.kpt-tooltip {
|
|
147
|
+
position: fixed;
|
|
148
|
+
z-index: var(--kpt-z-tooltip, 1400);
|
|
149
|
+
max-width: 16rem;
|
|
150
|
+
margin: 0;
|
|
151
|
+
padding: 0.35rem 0.6rem;
|
|
152
|
+
border: 0;
|
|
153
|
+
border-radius: var(--kpt-radius-sm, 0.25rem);
|
|
154
|
+
font-size: var(--kpt-font-size-xs, 0.75rem);
|
|
155
|
+
line-height: 1.4;
|
|
156
|
+
background: var(--kpt-color-on-surface);
|
|
157
|
+
color: var(--kpt-color-surface);
|
|
158
|
+
box-shadow: var(--kpt-elevation-2);
|
|
159
|
+
opacity: 0;
|
|
160
|
+
transition: opacity var(--kpt-motion-duration-fast, 120ms) var(--kpt-motion-easing-standard, ease);
|
|
161
|
+
}
|
|
162
|
+
.kpt-tooltip[data-visible] {
|
|
163
|
+
opacity: 1;
|
|
164
|
+
}
|
|
165
|
+
@media (prefers-reduced-motion: reduce) {
|
|
166
|
+
.kpt-tooltip {
|
|
167
|
+
transition: none;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
146
170
|
.kpt-rich-content ul,
|
|
147
171
|
.kpt-rich-content ol {
|
|
148
172
|
padding-inline-start: 1.5rem;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@konce-pt/styles",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Base CSS for Koncept UI
|
|
3
|
+
"version": "0.14.0",
|
|
4
|
+
"description": "Base CSS for Koncept UI - reset, cascade @layer ordering and neutral light/dark theme (SCSS source).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "konce.pt",
|
|
7
7
|
"homepage": "https://ui.konce.pt/",
|
|
@@ -52,13 +52,14 @@
|
|
|
52
52
|
"src"
|
|
53
53
|
],
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@konce-pt/tokens": "0.
|
|
55
|
+
"@konce-pt/tokens": "0.14.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"sass": "^1.77.0"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "sass src/index.scss:index.css --no-source-map --style=expanded && node scripts/build-components.mjs",
|
|
62
|
+
"lint": "eslint .",
|
|
62
63
|
"clean": "node -e \"require('fs').rmSync('index.css',{force:true});require('fs').rmSync('components.css',{force:true})\""
|
|
63
64
|
}
|
|
64
65
|
}
|
package/src/index.scss
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @konce-pt/styles
|
|
2
|
+
* @konce-pt/styles - bazowy CSS Koncept UI (źródło SCSS -> index.css).
|
|
3
3
|
* Kolejność warstw kaskady: reset < base < components < utilities.
|
|
4
4
|
* Komponenty (@konce-pt/angular) deklarują style w warstwie `kpt.components`,
|
|
5
5
|
* dzięki czemu aplikacja łatwo je nadpisuje bez wojny specyficzności.
|
|
6
6
|
*
|
|
7
7
|
* Wymaga wcześniejszego załadowania tokenów (custom properties --kpt-*).
|
|
8
|
-
* Angular CLI
|
|
8
|
+
* Angular CLI - angular.json -> styles[] (kolejność: tokeny, potem ten plik):
|
|
9
9
|
* node_modules/@konce-pt/tokens/dist/css/tokens.css
|
|
10
10
|
* node_modules/@konce-pt/tokens/dist/css/tokens.dark.css
|
|
11
11
|
* node_modules/@konce-pt/styles/index.css
|
|
12
|
-
* Vite/webpack
|
|
12
|
+
* Vite/webpack - import '@konce-pt/tokens/css'; import '@konce-pt/tokens/css/dark'; import '@konce-pt/styles';
|
|
13
13
|
*/
|
|
14
14
|
@use 'sass:list';
|
|
15
15
|
|
|
@@ -101,21 +101,21 @@
|
|
|
101
101
|
border-radius: var(--kpt-radius-sm, 0.25rem);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
//
|
|
104
|
+
// -- Paski przewijania --
|
|
105
105
|
// Wygląd z tokenów `--kpt-scrollbar-*`: uchwyt w kolorze wiodącym (więc sam idzie za motywem
|
|
106
106
|
// ciemnym i za kolorem marki), tor bez tła, grubość 8px, strzałki wyłączone.
|
|
107
107
|
//
|
|
108
108
|
// Uchwyt nie ma pełnego koloru w spoczynku: w stockowej palecie kolor wiodący to prawie czerń
|
|
109
|
-
// (w ciemnym
|
|
110
|
-
// (40% spoczynek, 65% pod kursorem, pełny przy przeciąganiu)
|
|
109
|
+
// (w ciemnym - biel) i pasek wyglądał jak przycisk główny. Mieszamy go z przezroczystością
|
|
110
|
+
// (40% spoczynek, 65% pod kursorem, pełny przy przeciąganiu) - przezroczystość składa się z tłem,
|
|
111
111
|
// więc ten sam token daje szarość w stocku, odcień marki z kolorem marki i dobrą jasność
|
|
112
112
|
// w obu motywach bez osobnych wartości dla ciemnego.
|
|
113
113
|
//
|
|
114
114
|
// Dwie drogi, bo przeglądarki nie mają jednej. Chromium i Safari stylują pseudoelementy
|
|
115
|
-
// `::-webkit-scrollbar*`
|
|
115
|
+
// `::-webkit-scrollbar*` - tylko tam da się ustawić grubość w pikselach i strzałki. Firefox zna
|
|
116
116
|
// wyłącznie standard: `scrollbar-color` i `scrollbar-width` (auto/thin/none). Standard trzeba
|
|
117
117
|
// podać TYLKO tam, gdzie pseudoelementów nie ma: Chromium od wersji 121 też go rozumie i wtedy
|
|
118
|
-
// całkowicie ignoruje `::-webkit-scrollbar`
|
|
118
|
+
// całkowicie ignoruje `::-webkit-scrollbar` - grubość i strzałki znikałyby po cichu.
|
|
119
119
|
//
|
|
120
120
|
// Reguła żyje w `kpt.base`, więc aplikacja nadpisuje ją bez wojny specyficzności: albo tokenami,
|
|
121
121
|
// albo własnym CSS-em (ten spoza warstw wygrywa z każdą regułą w warstwie).
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
|
|
154
154
|
// Strzałki: rozmiar `--kpt-scrollbar-button-size` (0 = brak), trójkąt w kolorze uchwytu.
|
|
155
155
|
//
|
|
156
|
-
// Trójkąt to `conic-gradient`
|
|
156
|
+
// Trójkąt to `conic-gradient` - wycinek koła o kącie 60° z wierzchołkiem przy krawędzi, przycięty
|
|
157
157
|
// do pola tła. Nie maska i nie obrazek SVG: Chromium nie stosuje `mask` na pseudoelementach paska
|
|
158
158
|
// (strzałka wychodziła pełnym kwadratem), a obrazek nie wziąłby barwy z tokenu.
|
|
159
159
|
::-webkit-scrollbar-button {
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
width: var(--kpt-scrollbar-button-size);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
// Po jednej strzałce na koniec
|
|
178
|
+
// Po jednej strzałce na koniec - bez par "góra+dół" przy każdej krawędzi, które
|
|
179
179
|
// Chromium dokłada, gdy styl strzałek w ogóle istnieje.
|
|
180
180
|
&:vertical:start:increment,
|
|
181
181
|
&:vertical:end:decrement,
|
|
@@ -203,9 +203,33 @@
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
@layer kpt.components {
|
|
206
|
-
//
|
|
206
|
+
// Dymek `kptTooltip` / `KptTooltip` (oba porty). Element powstaje w JS poza drzewem komponentu,
|
|
207
|
+
// więc jego styl mieszka tutaj, w warstwie - aplikacja nadpisuje go bez `!important`. Inline
|
|
208
|
+
// zostają tylko `position: fixed` i współrzędne, bez których dymek nie stanąłby przy hoście.
|
|
209
|
+
.kpt-tooltip {
|
|
210
|
+
position: fixed;
|
|
211
|
+
z-index: var(--kpt-z-tooltip, 1400);
|
|
212
|
+
max-width: 16rem;
|
|
213
|
+
margin: 0;
|
|
214
|
+
padding: 0.35rem 0.6rem;
|
|
215
|
+
border: 0;
|
|
216
|
+
border-radius: var(--kpt-radius-sm, 0.25rem);
|
|
217
|
+
font-size: var(--kpt-font-size-xs, 0.75rem);
|
|
218
|
+
line-height: 1.4;
|
|
219
|
+
background: var(--kpt-color-on-surface);
|
|
220
|
+
color: var(--kpt-color-surface);
|
|
221
|
+
box-shadow: var(--kpt-elevation-2);
|
|
222
|
+
opacity: 0;
|
|
223
|
+
transition: opacity var(--kpt-motion-duration-fast, 120ms) var(--kpt-motion-easing-standard, ease);
|
|
224
|
+
|
|
225
|
+
&[data-visible] { opacity: 1; }
|
|
226
|
+
|
|
227
|
+
@media (prefers-reduced-motion: reduce) { transition: none; }
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Treść zapisana w `kpt-rich-text` i renderowana poza edytorem - HTML z `value` nie niesie klas,
|
|
207
231
|
// więc opakuj go w `.kpt-rich-content`, żeby listy wyglądały tak samo jak w edytorze.
|
|
208
|
-
// Znaczniki cyklują co 3 poziomy (przeglądarka robi to sama tylko dla `ul`), do 6. poziomu
|
|
232
|
+
// Znaczniki cyklują co 3 poziomy (przeglądarka robi to sama tylko dla `ul`), do 6. poziomu -
|
|
209
233
|
// tyle pozwala domyślny `maxListLevel`. Trzymaj zgodnie z `rich-text.component.scss`.
|
|
210
234
|
.kpt-rich-content {
|
|
211
235
|
ul,
|