fokus-styles 2.4.0 → 2.6.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.
Files changed (212) hide show
  1. package/dist/css/components.css +561 -83
  2. package/dist/css/components.min.css +1 -1
  3. package/dist/css/fokus-components.css +561 -83
  4. package/dist/css/fokus-components.min.css +1 -1
  5. package/dist/css/fokus-rtl.css +697 -83
  6. package/dist/css/fokus-rtl.min.css +1 -1
  7. package/dist/css/fokus-utilities.css +136 -0
  8. package/dist/css/fokus-utilities.min.css +1 -1
  9. package/dist/css/fokus.css +996 -258
  10. package/dist/css/fokus.min.css +1 -1
  11. package/dist/css/forms.css +300 -176
  12. package/dist/css/forms.min.css +1 -1
  13. package/dist/css/helpers.css +136 -0
  14. package/dist/css/helpers.min.css +1 -1
  15. package/dist/js/fokus.js +270 -25
  16. package/dist/js/fokus.min.js +18 -18
  17. package/package.json +17 -15
  18. package/packages/fokus-components/scss/components/_alerts.scss +128 -6
  19. package/packages/fokus-components/scss/components/_badges.scss +26 -10
  20. package/packages/fokus-components/scss/components/_index.scss +1 -0
  21. package/packages/fokus-components/scss/components/_popover.scss +131 -21
  22. package/packages/fokus-components/scss/components/_responsive.scss +23 -0
  23. package/packages/fokus-components/scss/components/_tag.scss +37 -14
  24. package/packages/fokus-components/scss/components/_toasts.scss +156 -11
  25. package/packages/fokus-components/scss/components/_tooltips.scss +70 -18
  26. package/packages/fokus-components/scss/forms/_check-radio-switch.scss +313 -215
  27. package/packages/fokus-components/scss/forms/_forms.scss +16 -0
  28. package/packages/fokus-js/js/carousel.d.ts +4 -0
  29. package/packages/fokus-js/js/carousel.js +8 -0
  30. package/packages/fokus-js/js/core/positioning.js +18 -9
  31. package/packages/fokus-js/js/dropdown.d.ts +4 -0
  32. package/packages/fokus-js/js/dropdown.js +7 -0
  33. package/packages/fokus-js/js/popover.js +26 -1
  34. package/packages/fokus-js/js/tabs.d.ts +3 -0
  35. package/packages/fokus-js/js/tabs.js +5 -0
  36. package/packages/fokus-js/js/tag.js +17 -0
  37. package/packages/fokus-js/js/toast.js +77 -3
  38. package/packages/fokus-js/js/tooltip.d.ts +8 -1
  39. package/packages/fokus-js/js/tooltip.js +106 -13
  40. package/packages/fokus-utilities/scss/utilities/_api.scss +48 -0
  41. package/CHANGELOG.md +0 -910
  42. package/dist/css/components.css.map +0 -1
  43. package/dist/css/components.min.css.map +0 -1
  44. package/dist/css/fokus-components.css.map +0 -1
  45. package/dist/css/fokus-components.min.css.map +0 -1
  46. package/dist/css/fokus-core.css.map +0 -1
  47. package/dist/css/fokus-core.min.css.map +0 -1
  48. package/dist/css/fokus-dark.css.map +0 -1
  49. package/dist/css/fokus-dark.min.css.map +0 -1
  50. package/dist/css/fokus-rtl.css.map +0 -1
  51. package/dist/css/fokus-rtl.min.css.map +0 -1
  52. package/dist/css/fokus-utilities.css.map +0 -1
  53. package/dist/css/fokus-utilities.min.css.map +0 -1
  54. package/dist/css/fokus.css.map +0 -1
  55. package/dist/css/fokus.min.css.map +0 -1
  56. package/dist/css/fonts.css.map +0 -1
  57. package/dist/css/fonts.min.css.map +0 -1
  58. package/dist/css/forms.css.map +0 -1
  59. package/dist/css/forms.min.css.map +0 -1
  60. package/dist/css/helpers.css.map +0 -1
  61. package/dist/css/helpers.min.css.map +0 -1
  62. package/dist/css/layout.css.map +0 -1
  63. package/dist/css/layout.min.css.map +0 -1
  64. package/dist/js/fokus.js.map +0 -7
  65. package/dist/js/fokus.min.js.map +0 -7
  66. package/docs/README.md +0 -86
  67. package/docs/comparison.md +0 -124
  68. package/docs/components/accordion.md +0 -104
  69. package/docs/components/alert-dialog.md +0 -99
  70. package/docs/components/alert.md +0 -59
  71. package/docs/components/avatar.md +0 -13
  72. package/docs/components/badge.md +0 -82
  73. package/docs/components/breadcrumb.md +0 -93
  74. package/docs/components/button-group.md +0 -13
  75. package/docs/components/button.md +0 -98
  76. package/docs/components/card.md +0 -111
  77. package/docs/components/carousel.md +0 -167
  78. package/docs/components/checkbox.md +0 -97
  79. package/docs/components/close-button.md +0 -13
  80. package/docs/components/code.md +0 -13
  81. package/docs/components/collapse.md +0 -78
  82. package/docs/components/combobox.md +0 -123
  83. package/docs/components/command-palette.md +0 -131
  84. package/docs/components/datatable.md +0 -173
  85. package/docs/components/datepicker.md +0 -137
  86. package/docs/components/divider.md +0 -57
  87. package/docs/components/dropdown.md +0 -103
  88. package/docs/components/empty-state.md +0 -65
  89. package/docs/components/file-upload-advanced.md +0 -116
  90. package/docs/components/file-upload.md +0 -93
  91. package/docs/components/icon-link.md +0 -13
  92. package/docs/components/input-group.md +0 -73
  93. package/docs/components/input.md +0 -90
  94. package/docs/components/list-group.md +0 -13
  95. package/docs/components/modal.md +0 -120
  96. package/docs/components/navbar.md +0 -74
  97. package/docs/components/nested-menu.md +0 -90
  98. package/docs/components/notification-center.md +0 -116
  99. package/docs/components/offcanvas.md +0 -102
  100. package/docs/components/pagination.md +0 -145
  101. package/docs/components/placeholder.md +0 -13
  102. package/docs/components/popover.md +0 -105
  103. package/docs/components/progress.md +0 -126
  104. package/docs/components/radio.md +0 -70
  105. package/docs/components/range.md +0 -83
  106. package/docs/components/rating.md +0 -91
  107. package/docs/components/ratio.md +0 -13
  108. package/docs/components/scrollspy.md +0 -13
  109. package/docs/components/segmented-control.md +0 -82
  110. package/docs/components/select.md +0 -89
  111. package/docs/components/skeleton.md +0 -70
  112. package/docs/components/stepper.md +0 -107
  113. package/docs/components/switch.md +0 -75
  114. package/docs/components/table.md +0 -90
  115. package/docs/components/tabs.md +0 -104
  116. package/docs/components/tag.md +0 -129
  117. package/docs/components/tile.md +0 -112
  118. package/docs/components/timeline.md +0 -78
  119. package/docs/components/toast.md +0 -95
  120. package/docs/components/tooltip.md +0 -77
  121. package/docs/components/tree-view.md +0 -118
  122. package/docs/contributing/contributing.md +0 -18
  123. package/docs/getting-started/installation.md +0 -70
  124. package/docs/getting-started/usage.md +0 -105
  125. package/docs/guides/accessibility.md +0 -102
  126. package/docs/guides/charts.md +0 -73
  127. package/docs/guides/dark-mode.md +0 -90
  128. package/docs/guides/icons.md +0 -99
  129. package/docs/guides/javascript-api.md +0 -9
  130. package/docs/guides/layout-advanced.md +0 -118
  131. package/docs/guides/migration-clarus-to-fokus.md +0 -48
  132. package/docs/guides/migration-external.md +0 -123
  133. package/docs/guides/migration-v1.md +0 -63
  134. package/docs/guides/print.md +0 -30
  135. package/docs/guides/rtl-and-system-preferences.md +0 -28
  136. package/docs/guides/theming.md +0 -140
  137. package/docs/guides/utility-api.md +0 -9
  138. package/docs/prompts/prompt-plan.md +0 -45
  139. package/docs/reference/accessibility-matrix.md +0 -77
  140. package/docs/reference/browser-support.md +0 -75
  141. package/docs/reference/contrast-report.md +0 -50
  142. package/docs/reference/definitions.md +0 -864
  143. package/docs/reference/design-tokens.md +0 -194
  144. package/docs/reference/scss-architecture.md +0 -227
  145. package/docs/reference/size-baseline.json +0 -34
  146. package/docs/reference/stability.md +0 -89
  147. package/docs/showcase.md +0 -25
  148. package/mockup/README.md +0 -41
  149. package/mockup/assets/carousel-planning.png +0 -0
  150. package/mockup/assets/carousel-workspace.png +0 -0
  151. package/mockup/assets/example-theme.css +0 -8
  152. package/mockup/assets/example-theme.js +0 -11
  153. package/mockup/assets/showcase-contracts.js +0 -84
  154. package/mockup/assets/showcase.css +0 -91
  155. package/mockup/assets/showcase.js +0 -724
  156. package/mockup/content-data.html +0 -9
  157. package/mockup/examples/accordion-tabs-toast.html +0 -149
  158. package/mockup/examples/alert-dialog.html +0 -84
  159. package/mockup/examples/alerts.html +0 -41
  160. package/mockup/examples/badges-alerts.html +0 -77
  161. package/mockup/examples/buttons.html +0 -58
  162. package/mockup/examples/cards.html +0 -132
  163. package/mockup/examples/carousel.html +0 -126
  164. package/mockup/examples/charts.html +0 -102
  165. package/mockup/examples/check-radio-switch.html +0 -144
  166. package/mockup/examples/collapse.html +0 -69
  167. package/mockup/examples/combobox.html +0 -60
  168. package/mockup/examples/command-palette.html +0 -64
  169. package/mockup/examples/datatable.html +0 -113
  170. package/mockup/examples/datepicker.html +0 -62
  171. package/mockup/examples/divider.html +0 -45
  172. package/mockup/examples/dropdown-tooltip.html +0 -77
  173. package/mockup/examples/empty-state.html +0 -56
  174. package/mockup/examples/file-drop.html +0 -74
  175. package/mockup/examples/file-upload-advanced.html +0 -68
  176. package/mockup/examples/forms-advanced.html +0 -77
  177. package/mockup/examples/hover-card.html +0 -86
  178. package/mockup/examples/icons.html +0 -157
  179. package/mockup/examples/input-group.html +0 -74
  180. package/mockup/examples/js-foundation.html +0 -215
  181. package/mockup/examples/layout.html +0 -134
  182. package/mockup/examples/modal-select.html +0 -127
  183. package/mockup/examples/nested-menu.html +0 -73
  184. package/mockup/examples/notification-center.html +0 -86
  185. package/mockup/examples/offcanvas-popover.html +0 -133
  186. package/mockup/examples/pagination-breadcrumbs.html +0 -92
  187. package/mockup/examples/range.html +0 -69
  188. package/mockup/examples/rating.html +0 -103
  189. package/mockup/examples/segmented-control.html +0 -96
  190. package/mockup/examples/skeletons.html +0 -82
  191. package/mockup/examples/spinner-progress.html +0 -130
  192. package/mockup/examples/stepper.html +0 -119
  193. package/mockup/examples/tables-navbar.html +0 -89
  194. package/mockup/examples/tag.html +0 -105
  195. package/mockup/examples/theming.html +0 -68
  196. package/mockup/examples/tile.html +0 -107
  197. package/mockup/examples/timeline.html +0 -108
  198. package/mockup/examples/tree-view.html +0 -68
  199. package/mockup/feedback-actions.html +0 -9
  200. package/mockup/forms.html +0 -13
  201. package/mockup/foundations.html +0 -7
  202. package/mockup/kitchen-sink.html +0 -696
  203. package/mockup/navigation-disclosure.html +0 -11
  204. package/mockup/overlays-commands.html +0 -12
  205. package/mockup/templates/README.md +0 -20
  206. package/mockup/templates/admin.html +0 -334
  207. package/mockup/templates/auth.html +0 -234
  208. package/mockup/templates/dashboard.html +0 -442
  209. package/mockup/templates/landing.html +0 -397
  210. package/packages/fokus-icons/package.json +0 -46
  211. package/scripts/migrate-fokus-map.json +0 -1366
  212. package/scripts/migrate-fokus.mjs +0 -97
@@ -1,126 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Carousel</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/components.css">
11
- <link rel="stylesheet" href="../../dist/css/helpers.css">
12
- <style>
13
- .theme-panel {
14
- padding: 24px;
15
- }
16
-
17
- html[data-theme="dark"] .theme-panel {
18
- color: var(--fs-color-text);
19
- background-color: var(--fs-color-surface);
20
- }
21
-
22
- .fs-carousel {
23
- max-width: 560px;
24
- }
25
-
26
- .slide {
27
- display: flex;
28
- align-items: center;
29
- justify-content: center;
30
- height: 240px;
31
- color: #fff;
32
- font-size: 2rem;
33
- font-weight: 600;
34
- }
35
-
36
- .slide-1 { background: linear-gradient(135deg, #312e81, #4f46e5 54%, #818cf8); }
37
- .slide-2 { background: linear-gradient(135deg, #047857, #1bc559 54%, #6ee7b7); }
38
- .slide-3 { background: linear-gradient(135deg, #991b1b, #dc263e 54%, #fda4af); }
39
- </style>
40
- <link rel="stylesheet" href="../assets/example-theme.css">
41
- <script src="../assets/example-theme.js"></script>
42
- </head>
43
- <body>
44
-
45
- <div class="theme-panel">
46
- <h2 class="fs-u-fs-lg fs-u-fw-medium">Claro — slide (padrão)</h2>
47
-
48
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-2">Conteúdo de produto com áreas seguras para controles e indicadores</p>
49
- <div class="fs-carousel" data-fs="carousel" id="carousel-slide" aria-label="Destaques de produto">
50
- <div class="fs-carousel-inner">
51
- <div class="fs-carousel-item is-active">
52
- <div class="slide slide-1"></div>
53
- <div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Fluxos mais claros</h3><p>Centralize tarefas recorrentes em uma experiência previsível.</p><a class="fs-btn" href="#">Conhecer recursos</a></div>
54
- </div>
55
- <div class="fs-carousel-item">
56
- <div class="slide slide-2"></div>
57
- <div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Decisões compartilhadas</h3><p>Organize atualizações, responsáveis e próximos passos.</p><a class="fs-btn" href="#">Convidar equipe</a></div>
58
- </div>
59
- <div class="fs-carousel-item">
60
- <div class="slide slide-3"></div>
61
- <div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Visibilidade para o time</h3><p>Transforme acompanhamento em ação com contexto suficiente.</p><a class="fs-btn" href="#">Abrir indicadores</a></div>
62
- </div>
63
- </div>
64
- <button class="fs-carousel-control-prev" type="button" aria-label="Anterior"></button>
65
- <button class="fs-carousel-control-next" type="button" aria-label="Próximo"></button>
66
- <ol class="fs-carousel-indicators">
67
- <li><button type="button" aria-label="Ir para o slide 1"></button></li>
68
- <li><button type="button" aria-label="Ir para o slide 2"></button></li>
69
- <li><button type="button" aria-label="Ir para o slide 3"></button></li>
70
- </ol>
71
- </div>
72
-
73
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-4 fs-u-mb-2">Autoplay sem mídia, com contador, progresso e arraste desativado</p>
74
- <div class="fs-carousel fs-carousel-no-media fs-carousel-hide-indicators-two" data-fs="carousel" data-autoplay="true" data-interval="3000" data-drag="false" id="carousel-slide-autoplay" aria-label="Atualizações automáticas">
75
- <div class="fs-carousel-inner">
76
- <div class="fs-carousel-item is-active"><div class="fs-carousel-media-placeholder"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Resumo semanal</h3><p>Atualizações importantes podem aparecer como painel de conteúdo, sem exigir imagem de fundo.</p><a class="fs-btn fs-btn-primary" href="#">Ver relatório</a></div></div>
77
- <div class="fs-carousel-item"><div class="fs-carousel-media-placeholder"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Próximo passo</h3><p>Use este formato quando o slide tiver ações interativas e não fizer sentido arrastá-lo.</p><a class="fs-btn fs-btn-primary" href="#">Revisar pendências</a></div></div>
78
- </div>
79
- <button class="fs-carousel-control-prev" type="button" aria-label="Anterior"></button>
80
- <button class="fs-carousel-control-next" type="button" aria-label="Próximo"></button>
81
- <button class="fs-carousel-control-toggle" type="button" data-fs-carousel-toggle></button>
82
- <span class="fs-carousel-counter" data-fs-carousel-counter aria-hidden="true"></span>
83
- <div class="fs-carousel-progress" data-fs-carousel-progress aria-hidden="true"><span></span></div>
84
- </div>
85
-
86
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-4 fs-u-mb-2">Variante fade com legenda empilhada abaixo da mídia</p>
87
- <div class="fs-carousel fs-carousel-fade fs-carousel-caption-stacked" data-fs="carousel" data-autoplay="true" data-interval="3000" id="carousel-fade" aria-label="Destaques em transição suave">
88
- <div class="fs-carousel-inner">
89
- <div class="fs-carousel-item is-active"><div class="slide slide-1">Fade 1</div><div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Transição sem distração</h3><p>A legenda abaixo da mídia mantém textos longos completamente fora da área visual do slide.</p></div></div>
90
- <div class="fs-carousel-item"><div class="slide slide-2">Fade 2</div><div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Contexto sempre legível</h3><p>Esta variação é adequada quando a mídia não pode receber sobreposição.</p></div></div>
91
- <div class="fs-carousel-item"><div class="slide slide-3">Fade 3</div><div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Mesmo comportamento</h3><p>Teclado, autoplay e controles continuam disponíveis sem mudança de API.</p></div></div>
92
- </div>
93
- <button class="fs-carousel-control-prev" type="button" aria-label="Anterior"></button>
94
- <button class="fs-carousel-control-next" type="button" aria-label="Próximo"></button>
95
- <button class="fs-carousel-control-toggle" type="button" data-fs-carousel-toggle></button>
96
- <ol class="fs-carousel-indicators">
97
- <li><button type="button" aria-label="Ir para o slide 1"></button></li>
98
- <li><button type="button" aria-label="Ir para o slide 2"></button></li>
99
- <li><button type="button" aria-label="Ir para o slide 3"></button></li>
100
- </ol>
101
- </div>
102
-
103
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-4 fs-u-mb-2">Imagem de fundo com legenda lateral responsiva</p>
104
- <div class="fs-carousel fs-carousel-caption-side" data-fs="carousel" data-autoplay="true" data-interval="5000" id="carousel-image" aria-label="Histórias da equipe">
105
- <div class="fs-carousel-inner">
106
- <div class="fs-carousel-item is-active">
107
- <div class="fs-carousel-media" aria-hidden="true" style="background-image: url('../assets/carousel-workspace.png'); background-position: center;"></div>
108
- <div class="fs-carousel-caption fs-carousel-caption-start"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Legenda à esquerda</h3><p>Quando o assunto da foto estiver à direita, a legenda pode ocupar o lado oposto sem competir com a narrativa visual.</p><a class="fs-btn" href="#">Ler história</a></div>
109
- </div>
110
- <div class="fs-carousel-item">
111
- <div class="fs-carousel-media" aria-hidden="true" style="background-image: url('../assets/carousel-planning.png'); background-position: center;"></div>
112
- <div class="fs-carousel-caption"><h3 class="fs-u-fs-lg fs-u-fw-semibold">Legenda à direita</h3><p>Em outra composição, o conteúdo visual fica à esquerda e a mesma legenda lateral equilibra leitura e imagem.</p><a class="fs-btn" href="#">Ver iniciativas</a></div>
113
- </div>
114
- </div>
115
- <button class="fs-carousel-control-prev" type="button" aria-label="Anterior"></button>
116
- <button class="fs-carousel-control-next" type="button" aria-label="Próximo"></button>
117
- <button class="fs-carousel-control-toggle" type="button" data-fs-carousel-toggle></button>
118
- <span class="fs-carousel-counter" data-fs-carousel-counter aria-hidden="true"></span>
119
- </div>
120
- </div>
121
-
122
-
123
-
124
- <script src="../../dist/js/fokus.js"></script>
125
- </body>
126
- </html>
@@ -1,102 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Charts (tokens)</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/components.css">
11
- <link rel="stylesheet" href="../../dist/css/helpers.css">
12
- <style>
13
- .theme-panel {
14
- padding: 24px;
15
- }
16
-
17
- html[data-theme="dark"] .theme-panel {
18
- color: var(--fs-color-text);
19
- background-color: var(--fs-color-surface);
20
- }
21
-
22
- .chart-swatches {
23
- display: flex;
24
- gap: 8px;
25
- flex-wrap: wrap;
26
- }
27
-
28
- .chart-swatch {
29
- width: 64px;
30
- height: 64px;
31
- border-radius: var(--fs-radius-md);
32
- display: flex;
33
- align-items: flex-end;
34
- padding: 4px;
35
- font-size: 10px;
36
- color: #fff;
37
- text-shadow: 0 1px 1px rgb(0 0 0 / 40%);
38
- }
39
-
40
- .chart-demo {
41
- display: flex;
42
- align-items: flex-end;
43
- gap: 8px;
44
- height: 120px;
45
- border-bottom: 2px solid var(--fs-chart-axis);
46
- padding: 0 8px;
47
- margin-top: 12px;
48
- }
49
-
50
- .chart-demo-bar {
51
- width: 32px;
52
- border-radius: 4px 4px 0 0;
53
- }
54
-
55
- .chart-demo-tooltip {
56
- background-color: var(--fs-chart-tooltip-bg);
57
- color: var(--fs-chart-tooltip-text);
58
- padding: 4px 8px;
59
- border-radius: var(--fs-radius-sm);
60
- font-size: 12px;
61
- display: inline-block;
62
- margin-top: 12px;
63
- }
64
- </style>
65
- <link rel="stylesheet" href="../assets/example-theme.css">
66
- <script src="../assets/example-theme.js"></script>
67
- </head>
68
- <body>
69
-
70
- <!--
71
- Não é um wrapper de biblioteca de gráficos (docs/guides/charts.md) — só
72
- os tokens --fs-chart-* que qualquer lib pode consumir via
73
- getComputedStyle. Este mockup só visualiza os tokens (swatches + barras
74
- de CSS puro), sem carregar nenhuma lib de terceiro.
75
- -->
76
-
77
- <div class="theme-panel">
78
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-2">Séries (--fs-chart-series-1..6)</p>
79
- <div class="chart-swatches">
80
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-1);">1</div>
81
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-2);">2</div>
82
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-3);">3</div>
83
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-4);">4</div>
84
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-5);">5</div>
85
- <div class="chart-swatch" style="background-color: var(--fs-chart-series-6);">6</div>
86
- </div>
87
-
88
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-1">Barras de exemplo (grid/axis)</p>
89
- <div class="chart-demo">
90
- <div class="chart-demo-bar" style="height: 40%; background-color: var(--fs-chart-series-1);"></div>
91
- <div class="chart-demo-bar" style="height: 70%; background-color: var(--fs-chart-series-2);"></div>
92
- <div class="chart-demo-bar" style="height: 55%; background-color: var(--fs-chart-series-3);"></div>
93
- </div>
94
-
95
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-1">Tooltip (--fs-chart-tooltip-bg/text)</p>
96
- <span class="chart-demo-tooltip">Jan: 120</span>
97
- </div>
98
-
99
-
100
-
101
- </body>
102
- </html>
@@ -1,144 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Checkbox / Radio / Switch</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/forms.css">
11
- <link rel="stylesheet" href="../../dist/css/helpers.css">
12
- <style>
13
- .theme-panel {
14
- display: flex;
15
- flex-direction: column;
16
- gap: 16px;
17
- padding: 24px;
18
- }
19
-
20
- html[data-theme="dark"] .theme-panel {
21
- color: var(--fs-color-text);
22
- background-color: var(--fs-color-surface);
23
- }
24
-
25
- .control-row {
26
- display: flex;
27
- flex-wrap: wrap;
28
- align-items: center;
29
- gap: 20px;
30
- }
31
-
32
- .fs-check-invalid-demo {
33
- display: grid;
34
- gap: 4px;
35
- }
36
- </style>
37
- <link rel="stylesheet" href="../assets/example-theme.css">
38
- <script src="../assets/example-theme.js"></script>
39
- </head>
40
- <body>
41
-
42
- <div class="theme-panel">
43
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mb-0">Checkbox — estados</p>
44
- <div class="control-row">
45
- <div class="fs-check">
46
- <input type="checkbox" class="fs-check-input" id="check-unchecked">
47
- <label for="check-unchecked" class="fs-check-label">Não marcado</label>
48
- </div>
49
- <div class="fs-check">
50
- <input type="checkbox" class="fs-check-input" id="check-checked" checked>
51
- <label for="check-checked" class="fs-check-label">Marcado</label>
52
- </div>
53
- <div class="fs-check">
54
- <input type="checkbox" class="fs-check-input" id="check-indeterminate">
55
- <label for="check-indeterminate" class="fs-check-label">Indeterminado</label>
56
- </div>
57
- <div class="fs-check">
58
- <input type="checkbox" class="fs-check-input" id="check-disabled" disabled>
59
- <label for="check-disabled" class="fs-check-label">Desabilitado</label>
60
- </div>
61
- <div class="fs-check">
62
- <input type="checkbox" class="fs-check-input" id="check-disabled-checked" checked disabled>
63
- <label for="check-disabled-checked" class="fs-check-label">Desabilitado + marcado</label>
64
- </div>
65
- </div>
66
-
67
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-0">Checkbox — validação e tamanhos</p>
68
- <div class="control-row">
69
- <div class="fs-check fs-check-invalid-demo">
70
- <input type="checkbox" class="fs-check-input is-invalid" id="check-invalid">
71
- <label for="check-invalid" class="fs-check-label">Inválido</label>
72
- <div class="fs-invalid-feedback">Selecione esta opção para continuar.</div>
73
- </div>
74
- <div class="fs-check fs-check-sm">
75
- <input type="checkbox" class="fs-check-input" id="check-sm" checked>
76
- <label for="check-sm" class="fs-check-label">sm</label>
77
- </div>
78
- <div class="fs-check">
79
- <input type="checkbox" class="fs-check-input" id="check-md" checked>
80
- <label for="check-md" class="fs-check-label">md (padrão)</label>
81
- </div>
82
- <div class="fs-check fs-check-lg">
83
- <input type="checkbox" class="fs-check-input" id="check-lg" checked>
84
- <label for="check-lg" class="fs-check-label">lg</label>
85
- </div>
86
- </div>
87
-
88
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-0">Radio — estados e tamanhos</p>
89
- <div class="control-row">
90
- <div class="fs-radio">
91
- <input type="radio" name="radio-claro" class="fs-radio-input" id="radio-1" checked>
92
- <label for="radio-1" class="fs-radio-label">Opção 1</label>
93
- </div>
94
- <div class="fs-radio">
95
- <input type="radio" name="radio-claro" class="fs-radio-input" id="radio-2">
96
- <label for="radio-2" class="fs-radio-label">Opção 2</label>
97
- </div>
98
- <div class="fs-radio">
99
- <input type="radio" name="radio-claro-disabled" class="fs-radio-input" id="radio-disabled" disabled>
100
- <label for="radio-disabled" class="fs-radio-label">Desabilitado</label>
101
- </div>
102
- <div class="fs-radio fs-radio-sm">
103
- <input type="radio" name="radio-sm" class="fs-radio-input" id="radio-sm" checked>
104
- <label for="radio-sm" class="fs-radio-label">sm</label>
105
- </div>
106
- <div class="fs-radio fs-radio-lg">
107
- <input type="radio" name="radio-lg" class="fs-radio-input" id="radio-lg" checked>
108
- <label for="radio-lg" class="fs-radio-label">lg</label>
109
- </div>
110
- </div>
111
-
112
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mt-3 fs-u-mb-0">Switch — estados e tamanhos (knob retangular arredondado)</p>
113
- <div class="control-row">
114
- <div class="fs-switch">
115
- <input type="checkbox" class="fs-switch-input" id="switch-off">
116
- <label for="switch-off" class="fs-switch-label">Desligado</label>
117
- </div>
118
- <div class="fs-switch">
119
- <input type="checkbox" class="fs-switch-input" id="switch-on" checked>
120
- <label for="switch-on" class="fs-switch-label">Ligado</label>
121
- </div>
122
- <div class="fs-switch">
123
- <input type="checkbox" class="fs-switch-input" id="switch-disabled" disabled>
124
- <label for="switch-disabled" class="fs-switch-label">Desabilitado</label>
125
- </div>
126
- <div class="fs-switch fs-switch-sm">
127
- <input type="checkbox" class="fs-switch-input" id="switch-sm" checked>
128
- <label for="switch-sm" class="fs-switch-label">sm</label>
129
- </div>
130
- <div class="fs-switch fs-switch-lg">
131
- <input type="checkbox" class="fs-switch-input" id="switch-lg" checked>
132
- <label for="switch-lg" class="fs-switch-label">lg</label>
133
- </div>
134
- </div>
135
- </div>
136
-
137
-
138
-
139
- <script src="../../dist/js/fokus.js"></script>
140
- <script>
141
- document.getElementById("check-indeterminate").indeterminate = true;
142
- </script>
143
- </body>
144
- </html>
@@ -1,69 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Collapse</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/components.css">
11
- <link rel="stylesheet" href="../../dist/css/helpers.css">
12
- <style>
13
- .theme-panel {
14
- padding: 24px;
15
- }
16
-
17
- html[data-theme="dark"] .theme-panel {
18
- color: var(--fs-color-text);
19
- background-color: var(--fs-color-surface);
20
- }
21
-
22
- section {
23
- max-width: 420px;
24
- margin-bottom: 24px;
25
- }
26
-
27
- .collapse-body {
28
- padding: 12px 16px;
29
- margin-top: 8px;
30
- background-color: var(--fs-color-subtle);
31
- border-radius: var(--fs-radius-sm);
32
- }
33
- </style>
34
- <link rel="stylesheet" href="../assets/example-theme.css">
35
- <script src="../assets/example-theme.js"></script>
36
- </head>
37
- <body>
38
-
39
- <div class="theme-panel">
40
- <section>
41
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mb-2">Seção expansível independente (fechada por padrão)</p>
42
- <button type="button" class="fs-btn" data-fs="collapse" data-fs-target="#collapse-detalhes">
43
- Ver detalhes
44
- </button>
45
- <div class="fs-collapse" id="collapse-detalhes">
46
- <div class="collapse-body">
47
- Conteúdo adicional, revelado/ocultado via <code class="fs-u-font-mono">FokusStyles.Collapse</code>,
48
- reaproveitando <code class="fs-u-font-mono">collapse()</code>/<code class="fs-u-font-mono">expand()</code>
49
- de <code class="fs-u-font-mono">js/core/transition.js</code> (mesma infraestrutura do Accordion).
50
- </div>
51
- </div>
52
- </section>
53
-
54
- <section>
55
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mb-2">Iniciando aberto (aria-expanded="true")</p>
56
- <button type="button" class="fs-btn" data-fs="collapse" data-fs-target="#collapse-aberto" aria-expanded="true">
57
- Ocultar termos
58
- </button>
59
- <div class="fs-collapse" id="collapse-aberto">
60
- <div class="collapse-body">Este painel começa visível porque o gatilho já tem <code class="fs-u-font-mono">aria-expanded="true"</code>.</div>
61
- </div>
62
- </section>
63
- </div>
64
-
65
-
66
-
67
- <script src="../../dist/js/fokus.js"></script>
68
- </body>
69
- </html>
@@ -1,60 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Combobox</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/components.css">
11
- <link rel="stylesheet" href="../../dist/css/forms.css">
12
- <link rel="stylesheet" href="../../dist/css/helpers.css">
13
- <style>
14
- .theme-panel {
15
- padding: 24px;
16
- }
17
-
18
- html[data-theme="dark"] .theme-panel {
19
- color: var(--fs-color-text);
20
- background-color: var(--fs-color-surface);
21
- }
22
-
23
- section {
24
- max-width: 320px;
25
- margin-bottom: 24px;
26
- }
27
- </style>
28
- <link rel="stylesheet" href="../assets/example-theme.css">
29
- <script src="../assets/example-theme.js"></script>
30
- </head>
31
- <body>
32
-
33
- <div class="theme-panel">
34
- <section>
35
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mb-1">Combobox — digite pra filtrar (ex.: "css")</p>
36
- <label for="combobox-claro" class="fs-form-label">Framework CSS favorito</label>
37
- <div class="fs-combobox">
38
- <input type="text" class="fs-form-control" id="combobox-claro" data-fs="combobox" data-fs-target="#combobox-claro-listbox" placeholder="Buscar framework…">
39
- </div>
40
- <ul class="fs-dropdown-menu fs-combobox-listbox" id="combobox-claro-listbox">
41
- <li class="fs-dropdown-item" data-value="bootstrap">Bootstrap</li>
42
- <li class="fs-dropdown-item" data-value="tailwind">Tailwind CSS</li>
43
- <li class="fs-dropdown-item" data-value="bulma">Bulma</li>
44
- <li class="fs-dropdown-item" data-value="foundation">Foundation</li>
45
- <li class="fs-dropdown-item" data-value="uikit">UIkit</li>
46
- <li class="fs-dropdown-item" data-value="cirrus">Cirrus</li>
47
- <li class="fs-dropdown-item" data-value="fokus">Fokus Styles</li>
48
- <li class="fs-dropdown-item is-disabled" data-value="descontinuado">Framework descontinuado</li>
49
- <li class="fs-dropdown-item is-disabled" data-fs-empty hidden>Nenhum resultado encontrado.</li>
50
- </ul>
51
- </section>
52
- </div>
53
-
54
-
55
-
56
- <!-- SCRIPTS IMPORT -->
57
- <script src="../../dist/js/fokus.js"></script>
58
-
59
- </body>
60
- </html>
@@ -1,64 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Mockup - Command Palette</title>
7
-
8
- <!-- STYLES IMPORT -->
9
- <link rel="stylesheet" href="../../dist/css/fonts.css">
10
- <link rel="stylesheet" href="../../dist/css/components.css">
11
- <link rel="stylesheet" href="../../dist/css/forms.css">
12
- <link rel="stylesheet" href="../../dist/css/helpers.css">
13
- <style>
14
- .theme-panel {
15
- padding: 24px;
16
- }
17
-
18
- html[data-theme="dark"] .theme-panel {
19
- color: var(--fs-color-text);
20
- background-color: var(--fs-color-surface);
21
- }
22
-
23
- section {
24
- max-width: 320px;
25
- margin-bottom: 24px;
26
- }
27
- </style>
28
- <link rel="stylesheet" href="../assets/example-theme.css">
29
- <script src="../assets/example-theme.js"></script>
30
- </head>
31
- <body>
32
-
33
- <div class="theme-panel">
34
- <section>
35
- <p class="fs-u-fs-sm fs-u-fw-medium fs-u-mb-1">Command Palette — clique ou pressione Ctrl+K / Cmd+K</p>
36
- <button type="button" class="fs-btn fs-btn-primary" data-fs="command-palette" data-fs-target="#paleta-claro" data-fs-shortcut="mod+k">
37
- Comandos (Ctrl+K)
38
- </button>
39
-
40
- <div class="fs-command-palette" id="paleta-claro">
41
- <div class="fs-command-palette-dialog">
42
- <input type="text" class="fs-command-palette-input" placeholder="Digite um comando…">
43
- <ul class="fs-command-palette-list">
44
- <li class="fs-dropdown-header">Arquivo</li>
45
- <li class="fs-dropdown-item" data-value="new-file">Novo arquivo</li>
46
- <li class="fs-dropdown-item" data-value="open-file">Abrir arquivo…</li>
47
- <li class="fs-dropdown-header">Ver</li>
48
- <li class="fs-dropdown-item" data-value="toggle-theme">Alternar tema claro/escuro</li>
49
- <li class="fs-dropdown-item" data-value="open-settings">Abrir configurações</li>
50
- <li class="fs-dropdown-item is-disabled" data-value="disabled">Comando indisponível</li>
51
- <li class="fs-dropdown-item is-disabled" data-fs-empty hidden>Nenhum comando encontrado.</li>
52
- </ul>
53
- </div>
54
- </div>
55
- </section>
56
- </div>
57
-
58
-
59
-
60
- <!-- SCRIPTS IMPORT -->
61
- <script src="../../dist/js/fokus.js"></script>
62
-
63
- </body>
64
- </html>