@festo-ui/web-essentials 10.1.1 → 11.0.0-dev.934

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.
@@ -0,0 +1,127 @@
1
+ # Utilities
2
+
3
+ ## Display
4
+
5
+ Responsive display classes:
6
+
7
+ | Class | Description |
8
+ |---|---|
9
+ | `fwe-d-none` | Hidden |
10
+ | `fwe-d-block` | Block |
11
+ | `fwe-d-flex` | Flex |
12
+ | `fwe-d-inline` | Inline |
13
+ | `fwe-d-{bp}-none` | Hidden from breakpoint |
14
+ | `fwe-d-{bp}-block` | Block from breakpoint |
15
+ | `fwe-d-{bp}-flex` | Flex from breakpoint |
16
+
17
+ Example: `fwe-d-none fwe-d-md-block` → hidden on mobile, visible from `md`.
18
+
19
+ ## Spacing (Margin & Padding)
20
+
21
+ ### Syntax: `fwe-{m|p}{side}-{size}`
22
+
23
+ **Sides:** *(empty)* = all, `t` = top, `b` = bottom, `l` = left, `r` = right, `x` = horizontal, `y` = vertical
24
+
25
+ **Sizes:**
26
+
27
+ | Token | Value |
28
+ |---|---|
29
+ | `0` | 0 |
30
+ | `xxxs` | 2px |
31
+ | `xxs` | 4px |
32
+ | `xs` | 8px |
33
+ | `s` | 12px |
34
+ | `m` | 16px |
35
+ | `l` | 24px |
36
+ | `xl` | 32px |
37
+ | `xxl` | 48px |
38
+ | `xxxl` | 64px |
39
+ | `auto` | auto |
40
+
41
+ Also numeric: `fwe-m-0` to `fwe-m-6`, `fwe-p-0` to `fwe-p-6`.
42
+
43
+ ### Responsive Spacing
44
+
45
+ ```html
46
+ <div class="fwe-mt-xs fwe-mt-md-xl">
47
+ <!-- margin-top: 8px, from md: 32px -->
48
+ </div>
49
+ ```
50
+
51
+ ### Examples
52
+
53
+ ```html
54
+ <div class="fwe-m-0">No margin</div>
55
+ <div class="fwe-p-4">Padding level 4</div>
56
+ <div class="fwe-mt-xl fwe-mb-s">Margin top XL, bottom S</div>
57
+ <div class="fwe-mx-auto">Horizontally centered</div>
58
+ <div class="fwe-ml-auto">Pushed to the right</div>
59
+ ```
60
+
61
+ ## Borders
62
+
63
+ | Class | Description |
64
+ |---|---|
65
+ | `fwe-b` | Border all sides |
66
+ | `fwe-bt` | Border top |
67
+ | `fwe-bb` | Border bottom |
68
+ | `fwe-bl` | Border left |
69
+ | `fwe-br` | Border right |
70
+ | `fwe-bx` | Border left + right |
71
+ | `fwe-by` | Border top + bottom |
72
+
73
+ Responsive: `fwe-b-{bp}`, `fwe-bl-{bp}-none` etc.
74
+
75
+ ## Flex Utilities
76
+
77
+ ### Container & Direction
78
+
79
+ | Class | Description |
80
+ |---|---|
81
+ | `fwe-d-flex` | Display flex |
82
+ | `fwe-flex-row` | Row (default) |
83
+ | `fwe-flex-row-reverse` | Row reversed |
84
+ | `fwe-flex-column` | Column |
85
+ | `fwe-flex-column-reverse` | Column reversed |
86
+
87
+ ### Justify Content
88
+
89
+ `fwe-justify-content-{flex-start|flex-end|center|space-between|space-around|space-evenly}`
90
+
91
+ ### Align Items
92
+
93
+ `fwe-align-items-{flex-start|flex-end|center|baseline|stretch}`
94
+
95
+ ### Align Self
96
+
97
+ `fwe-align-self-{flex-start|flex-end|center}`
98
+
99
+ ### Grow & Shrink
100
+
101
+ | Class | Description |
102
+ |---|---|
103
+ | `fwe-flex-grow-1` | flex-grow: 1 |
104
+ | `fwe-flex-shrink-1` | flex-shrink: 1 |
105
+
106
+ ### Wrap
107
+
108
+ | Class | Description |
109
+ |---|---|
110
+ | `fwe-flex-wrap` | Wrap enabled |
111
+ | `fwe-flex-nowrap` | No wrap |
112
+ | `fwe-flex-wrap-reverse` | Wrap reversed |
113
+
114
+ ### Order
115
+
116
+ `fwe-order-{1|2|3}`
117
+
118
+ ### Align Content
119
+
120
+ `fwe-align-content-{flex-start|flex-end|center|space-between|space-around|stretch}`
121
+
122
+ ## Other
123
+
124
+ | Class | Description |
125
+ |---|---|
126
+ | `fwe-w-100` | width: 100% |
127
+ | `fwe-sr-only` | Screen reader only (visually hidden) |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@festo-ui/web-essentials",
3
- "version": "10.1.1",
3
+ "version": "11.0.0-dev.934",
4
4
  "description": "CSS framework and utils to build FESTO web applications",
5
5
  "keywords": [
6
6
  "css",
@@ -19,7 +19,8 @@
19
19
  "style": "dist/css/festo-web-essentials.css",
20
20
  "files": [
21
21
  "dist/{scss,css,js}/**/*.{scss,css,js,map}",
22
- "scss"
22
+ "scss",
23
+ "llm-doc"
23
24
  ],
24
25
  "scripts": {
25
26
  "storybook": "storybook dev -p 6005",
@@ -46,6 +47,7 @@
46
47
  "@babel/preset-typescript": "^7.22.11",
47
48
  "@festo-ui/icon-font": "*",
48
49
  "@storybook/addon-docs": "^10.2.9",
50
+ "@storybook/addon-mcp": "^0.6.0",
49
51
  "@storybook/cli": "^10.2.9",
50
52
  "@storybook/html": "^10.2.9",
51
53
  "@storybook/html-vite": "^10.2.9",
@@ -20,7 +20,7 @@
20
20
  flex-shrink: 0;
21
21
  align-items: center;
22
22
  min-height: 24px;
23
- color: variables.$text;
23
+ color: currentColor;
24
24
  font-size: variables.$font-size-md;
25
25
  line-height: calc(#{variables.$font-size-md} + 2px);
26
26
 
@@ -38,7 +38,7 @@
38
38
  a {
39
39
  display: block;
40
40
  align-items: center;
41
- color: variables.$text;
41
+ color: currentColor;
42
42
  text-decoration: none;
43
43
  user-select: none;
44
44
 
@@ -68,7 +68,8 @@
68
68
  margin-right: 4px;
69
69
  height: 16px;
70
70
  width: 16px;
71
- background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0id2hpdGUgYmFja2dyb3VuZCIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAxNlYwaDE2djE2eiIvPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Im0xMC43MDcgOC00LjM1MyA0LjM1NC0uNzA4LS43MDhMOS4yOTMgOCA1LjY0NiA0LjM1NGwuNzA4LS43MDhMMTAuNzA3IDh6Ii8+PC9zdmc+");
71
+ background: currentColor;
72
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0id2hpdGUgYmFja2dyb3VuZCIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAxNlYwaDE2djE2eiIvPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Im0xMC43MDcgOC00LjM1MyA0LjM1NC0uNzA4LS43MDhMOS4yOTMgOCA1LjY0NiA0LjM1NGwuNzA4LS43MDhMMTAuNzA3IDh6Ii8+PC9zdmc+");
72
73
  }
73
74
  }
74
75
 
package/scss/_table.scss CHANGED
@@ -41,9 +41,6 @@ table.fwe-table {
41
41
  position: relative;
42
42
  top: 2px;
43
43
  left: variables.$spacer-xxs;
44
- }
45
-
46
- &::before {
47
44
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj48cGF0aCBkPSJNOCAxMC43MDdMMy42NDYgNi4zNTRMNC4zNTQgNS42NDZMOCA5LjI5M0wxMS42NDYgNS42NDZMMTIuMzU0IDYuMzU0TDggMTAuNzA3WiIgZmlsbD0iIzMzMzMzMyIvPjwvc3ZnPg==");
48
45
  }
49
46
 
@@ -66,8 +63,8 @@ table.fwe-table {
66
63
  }
67
64
 
68
65
  td {
69
- &.fwe-v-align-middle {
70
- vertical-align: middle;
66
+ &.fwe-v-align-top {
67
+ vertical-align: top;
71
68
  }
72
69
 
73
70
  &.fwe-t-align-center {
@@ -84,7 +81,7 @@ table.fwe-table {
84
81
  padding-bottom: 12px;
85
82
  padding-left: 16px;
86
83
  padding-right: 16px;
87
- vertical-align: top;
84
+ vertical-align: middle;
88
85
 
89
86
  img.fwe-td-img {
90
87
  display: block;
@@ -28,7 +28,8 @@ a {
28
28
  .fwe-text-link {
29
29
  color: variables.$hero;
30
30
  text-decoration: underline;
31
- text-decoration-thickness: auto;
31
+ text-decoration-thickness: 2px;
32
+ text-underline-offset: 2px;
32
33
 
33
34
  i.fwe-icon {
34
35
  vertical-align: text-top;
@@ -47,6 +48,7 @@ a {
47
48
  &:hover:not(.fwe-disabled) {
48
49
  color: variables.$hero-hover;
49
50
  text-decoration: underline;
50
- text-decoration-thickness: auto;
51
+ text-decoration-thickness: 2px;
52
+ text-underline-offset: 2px;
51
53
  }
52
54
  }