@operato/form 7.0.0-rc.8 → 7.0.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 (57) hide show
  1. package/.storybook/preview.js +52 -0
  2. package/CHANGELOG.md +55 -0
  3. package/dist/src/filters/filter-styles.js +1 -0
  4. package/dist/src/filters/filter-styles.js.map +1 -1
  5. package/dist/src/styles/multi-column-form-styles.js +1 -1
  6. package/dist/src/styles/multi-column-form-styles.js.map +1 -1
  7. package/dist/src/styles/search-form-styles.js +6 -7
  8. package/dist/src/styles/search-form-styles.js.map +1 -1
  9. package/dist/stories/ox-filters-form-barcode.stories.d.ts +0 -5
  10. package/dist/stories/ox-filters-form-barcode.stories.js +3 -7
  11. package/dist/stories/ox-filters-form-barcode.stories.js.map +1 -1
  12. package/dist/stories/ox-filters-form-base-bounded.stories.d.ts +0 -5
  13. package/dist/stories/ox-filters-form-base-bounded.stories.js +3 -7
  14. package/dist/stories/ox-filters-form-base-bounded.stories.js.map +1 -1
  15. package/dist/stories/ox-filters-form-base-change-handler.stories.d.ts +0 -5
  16. package/dist/stories/ox-filters-form-base-change-handler.stories.js +3 -7
  17. package/dist/stories/ox-filters-form-base-change-handler.stories.js.map +1 -1
  18. package/dist/stories/ox-filters-form-base-page-preference.stories.js +5 -20
  19. package/dist/stories/ox-filters-form-base-page-preference.stories.js.map +1 -1
  20. package/dist/stories/ox-filters-form-base.stories.d.ts +0 -5
  21. package/dist/stories/ox-filters-form-base.stories.js +3 -5
  22. package/dist/stories/ox-filters-form-base.stories.js.map +1 -1
  23. package/dist/stories/ox-search-form-change-handler.stories.d.ts +0 -5
  24. package/dist/stories/ox-search-form-change-handler.stories.js +3 -7
  25. package/dist/stories/ox-search-form-change-handler.stories.js.map +1 -1
  26. package/dist/stories/ox-search-form.stories.d.ts +0 -5
  27. package/dist/stories/ox-search-form.stories.js +3 -7
  28. package/dist/stories/ox-search-form.stories.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +7 -7
  31. package/src/filters/filter-styles.ts +1 -0
  32. package/src/styles/multi-column-form-styles.ts +1 -1
  33. package/src/styles/search-form-styles.ts +6 -7
  34. package/stories/ox-filters-form-barcode.stories.ts +3 -8
  35. package/stories/ox-filters-form-base-bounded.stories.ts +3 -8
  36. package/stories/ox-filters-form-base-change-handler.stories.ts +3 -8
  37. package/stories/ox-filters-form-base-page-preference.stories.ts +5 -20
  38. package/stories/ox-filters-form-base.stories.ts +3 -6
  39. package/stories/ox-search-form-change-handler.stories.ts +3 -8
  40. package/stories/ox-search-form.stories.ts +3 -14
  41. package/themes/app-theme.css +138 -0
  42. package/themes/calendar-theme.css +59 -0
  43. package/themes/dark.css +0 -100
  44. package/themes/form-theme.css +3 -1
  45. package/themes/grist-theme.css +45 -41
  46. package/themes/layout-theme.css +94 -0
  47. package/themes/light.css +3 -103
  48. package/themes/material-theme.css +23 -0
  49. package/themes/oops-theme.css +22 -0
  50. package/themes/report-theme.css +47 -0
  51. package/themes/spacing.css +7 -27
  52. package/themes/state-color.css +1 -1
  53. package/themes/tooltip-theme.css +11 -0
  54. package/themes/dark-hc.css +0 -151
  55. package/themes/dark-mc.css +0 -151
  56. package/themes/light-hc.css +0 -151
  57. package/themes/light-mc.css +0 -151
@@ -3,7 +3,8 @@ import { css } from 'lit'
3
3
  export const SearchFormStyles = css`
4
4
  :host {
5
5
  overflow: auto;
6
- background-color: transparent;
6
+ background-color: var(--search-form-background-color, var(--md-sys-color-surface));
7
+ padding: var(--spacing-medium);
7
8
  }
8
9
 
9
10
  .search-form {
@@ -12,7 +13,6 @@ export const SearchFormStyles = css`
12
13
  grid-template-columns: repeat(24, 1fr);
13
14
  grid-gap: var(--form-grid-gap, var(--spacing-medium));
14
15
  grid-auto-rows: minmax(24px, auto);
15
- background-color: var(--search-form-background-color, var(--md-sys-color-surface));
16
16
  }
17
17
  .search-form label {
18
18
  grid-column: span 3;
@@ -35,7 +35,7 @@ export const SearchFormStyles = css`
35
35
  font: var(--input-field-font);
36
36
  max-width: 85%;
37
37
  color: var(--input-field-color, var(--md-sys-color-on-surface-variant));
38
- background-color: transparent;
38
+ background-color: var(--md-sys-color-surface-container-lowest);
39
39
  }
40
40
 
41
41
  .search-form select {
@@ -73,8 +73,8 @@ export const SearchFormStyles = css`
73
73
 
74
74
  [search] {
75
75
  position: absolute;
76
- right: 1%;
77
- bottom: 15px;
76
+ right: var(--spacing-small);
77
+ bottom: var(--spacing-none);
78
78
  color: var(--search-form-icon-color, var(--md-sys-color-primary));
79
79
  }
80
80
 
@@ -87,7 +87,6 @@ export const SearchFormStyles = css`
87
87
  .search-form {
88
88
  grid-template-columns: repeat(12, 1fr);
89
89
  grid-gap: var(--spacing-medium) var(--spacing-medium);
90
- background-color: transparent;
91
90
 
92
91
  max-height: 100%;
93
92
  overflow-y: auto;
@@ -121,7 +120,7 @@ export const SearchFormStyles = css`
121
120
  }
122
121
 
123
122
  [search] {
124
- right: 3%;
123
+ right: var(--spacing-tiny);
125
124
  color: var(--md-sys-color-on-surface);
126
125
  }
127
126
  }
@@ -10,8 +10,7 @@ export default {
10
10
  argTypes: {
11
11
  value: { control: 'object' },
12
12
  filters: { control: 'object' },
13
- urlParamsSensitive: { control: 'boolean' },
14
- theme: { control: 'select', options: ['light', 'dark'] }
13
+ urlParamsSensitive: { control: 'boolean' }
15
14
  }
16
15
  }
17
16
 
@@ -25,15 +24,15 @@ interface ArgTypes {
25
24
  value?: object
26
25
  filters?: object
27
26
  urlParamsSensitive: boolean
28
- theme: 'light' | 'dark'
29
27
  }
30
28
 
31
- const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme = 'light' }: ArgTypes) => html`
29
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
32
30
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
33
31
 
34
32
  <link href="/themes/light.css" rel="stylesheet" />
35
33
  <link href="/themes/dark.css" rel="stylesheet" />
36
34
  <link href="/themes/spacing.css" rel="stylesheet" />
35
+ <link href="/themes/form-theme.css" rel="stylesheet" />
37
36
 
38
37
  <link
39
38
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -73,10 +72,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
73
72
  }
74
73
  </style>
75
74
 
76
- <script>
77
- document.body.classList.add('${theme}')
78
- </script>
79
-
80
75
  <div class="header">
81
76
  <div class="filters">
82
77
  <ox-filters-form-base
@@ -13,8 +13,7 @@ export default {
13
13
  argTypes: {
14
14
  value: { control: 'object' },
15
15
  filters: { control: 'object' },
16
- urlParamsSensitive: { control: 'boolean' },
17
- theme: { control: 'select', options: ['light', 'dark'] }
16
+ urlParamsSensitive: { control: 'boolean' }
18
17
  }
19
18
  }
20
19
 
@@ -28,15 +27,15 @@ interface ArgTypes {
28
27
  value?: FilterValue[]
29
28
  filters?: FilterConfig[]
30
29
  urlParamsSensitive: boolean
31
- theme: 'light' | 'dark'
32
30
  }
33
31
 
34
- const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme = 'light' }: ArgTypes) => html`
32
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
35
33
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
36
34
 
37
35
  <link href="/themes/light.css" rel="stylesheet" />
38
36
  <link href="/themes/dark.css" rel="stylesheet" />
39
37
  <link href="/themes/spacing.css" rel="stylesheet" />
38
+ <link href="/themes/form-theme.css" rel="stylesheet" />
40
39
 
41
40
  <link
42
41
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -76,10 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
76
75
  }
77
76
  </style>
78
77
 
79
- <script>
80
- document.body.classList.add('${theme}')
81
- </script>
82
-
83
78
  <div class="header">
84
79
  <div class="filters">
85
80
  <ox-filters-form-base
@@ -13,8 +13,7 @@ export default {
13
13
  argTypes: {
14
14
  value: { control: 'object' },
15
15
  filters: { control: 'object' },
16
- urlParamsSensitive: { control: 'boolean' },
17
- theme: { control: 'select', options: ['light', 'dark'] }
16
+ urlParamsSensitive: { control: 'boolean' }
18
17
  }
19
18
  }
20
19
 
@@ -28,15 +27,15 @@ interface ArgTypes {
28
27
  value?: FilterValue[]
29
28
  filters?: FilterConfig[]
30
29
  urlParamsSensitive: boolean
31
- theme: 'light' | 'dark'
32
30
  }
33
31
 
34
- const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme = 'light' }: ArgTypes) => html`
32
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
35
33
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
36
34
 
37
35
  <link href="/themes/light.css" rel="stylesheet" />
38
36
  <link href="/themes/dark.css" rel="stylesheet" />
39
37
  <link href="/themes/spacing.css" rel="stylesheet" />
38
+ <link href="/themes/form-theme.css" rel="stylesheet" />
40
39
 
41
40
  <link
42
41
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -76,10 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
76
75
  }
77
76
  </style>
78
77
 
79
- <script>
80
- document.body.classList.add('${theme}')
81
- </script>
82
-
83
78
  <div class="header">
84
79
  <div class="filters">
85
80
  <ox-filters-form-base
@@ -31,9 +31,12 @@ interface ArgTypes {
31
31
  }
32
32
 
33
33
  const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
34
- <link href="/themes/app-theme.css" rel="stylesheet" />
34
+ <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
35
+
36
+ <link href="/themes/light.css" rel="stylesheet" />
37
+ <link href="/themes/dark.css" rel="stylesheet" />
38
+ <link href="/themes/spacing.css" rel="stylesheet" />
35
39
  <link href="/themes/form-theme.css" rel="stylesheet" />
36
- <link href="/themes/input-theme.css" rel="stylesheet" />
37
40
 
38
41
  <link
39
42
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -55,24 +58,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTy
55
58
  </style>
56
59
 
57
60
  <style>
58
- ox-filters-form-base {
59
- --input-gap-vertical: 8px;
60
- --input-gap-horizontal: 16px;
61
-
62
- --ox-filters-input-placeholder-color: var(--primary-color);
63
-
64
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
65
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
66
- --ox-filters-input-font: normal 14px var(--theme-font);
67
- --ox-filters-input-color: var(--primary-text-color);
68
- --ox-filters-input-focus-color: var(--primary-color);
69
- --ox-filters-label-font: normal 14px var(--theme-font);
70
- --ox-filters-label-color: var(--primary-text-color);
71
-
72
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
73
- --ox-filters-input-padding: 6px 2px;
74
- }
75
-
76
61
  div.filters {
77
62
  position: relative;
78
63
  }
@@ -12,8 +12,7 @@ export default {
12
12
  argTypes: {
13
13
  value: { control: 'object' },
14
14
  filters: { control: 'object' },
15
- urlParamsSensitive: { control: 'boolean' },
16
- theme: { control: 'select', options: ['light', 'dark'] }
15
+ urlParamsSensitive: { control: 'boolean' }
17
16
  }
18
17
  }
19
18
 
@@ -27,15 +26,15 @@ interface ArgTypes {
27
26
  value?: FilterValue[]
28
27
  filters?: FilterConfig[]
29
28
  urlParamsSensitive: boolean
30
- theme: 'light' | 'dark'
31
29
  }
32
30
 
33
- const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme = 'light' }: ArgTypes) => html`
31
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
34
32
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
35
33
 
36
34
  <link href="/themes/light.css" rel="stylesheet" />
37
35
  <link href="/themes/dark.css" rel="stylesheet" />
38
36
  <link href="/themes/spacing.css" rel="stylesheet" />
37
+ <link href="/themes/form-theme.css" rel="stylesheet" />
39
38
 
40
39
  <link
41
40
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -76,8 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
76
75
  </style>
77
76
 
78
77
  <script>
79
- document.body.classList.add('${theme}')
80
-
81
78
  setInterval(() => {
82
79
  const filters = document.body.querySelector('ox-filters-form-base')
83
80
 
@@ -13,8 +13,7 @@ export default {
13
13
  value: { control: 'object' },
14
14
  fields: { control: 'object' },
15
15
  hideSearchButton: { control: 'boolean' },
16
- autofocus: { control: 'boolean' },
17
- theme: { control: 'select', options: ['light', 'dark'] }
16
+ autofocus: { control: 'boolean' }
18
17
  }
19
18
  }
20
19
 
@@ -28,15 +27,15 @@ interface ArgTypes {
28
27
  fields?: SearchFormField[]
29
28
  hideSearchButton?: boolean
30
29
  autofocus?: boolean
31
- theme: 'light' | 'dark'
32
30
  }
33
31
 
34
- const Template: Story<ArgTypes> = ({ fields, hideSearchButton, autofocus, theme }: ArgTypes) => html`
32
+ const Template: Story<ArgTypes> = ({ fields, hideSearchButton, autofocus }: ArgTypes) => html`
35
33
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
36
34
 
37
35
  <link href="/themes/light.css" rel="stylesheet" />
38
36
  <link href="/themes/dark.css" rel="stylesheet" />
39
37
  <link href="/themes/spacing.css" rel="stylesheet" />
38
+ <link href="/themes/form-theme.css" rel="stylesheet" />
40
39
 
41
40
  <link
42
41
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -76,10 +75,6 @@ const Template: Story<ArgTypes> = ({ fields, hideSearchButton, autofocus, theme
76
75
  }
77
76
  </style>
78
77
 
79
- <script>
80
- document.body.classList.add('${theme}')
81
- </script>
82
-
83
78
  <div class="header">
84
79
  <div class="filters">
85
80
  <ox-search-form
@@ -15,8 +15,7 @@ export default {
15
15
  fields: { control: 'object' },
16
16
  hideSearchButton: { control: 'boolean' },
17
17
  autofocus: { control: 'boolean' },
18
- resetTarget: { control: 'object' },
19
- theme: { control: 'select', options: ['light', 'dark'] }
18
+ resetTarget: { control: 'object' }
20
19
  }
21
20
  }
22
21
 
@@ -31,21 +30,15 @@ interface ArgTypes {
31
30
  hideSearchButton?: boolean
32
31
  autofocus?: boolean
33
32
  resetTarget: string[] | { [field: string]: any }
34
- theme: 'light' | 'dark'
35
33
  }
36
34
 
37
- const Template: Story<ArgTypes> = ({
38
- fields,
39
- hideSearchButton,
40
- autofocus,
41
- resetTarget,
42
- theme = 'light'
43
- }: ArgTypes) => html`
35
+ const Template: Story<ArgTypes> = ({ fields, hideSearchButton, autofocus, resetTarget }: ArgTypes) => html`
44
36
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
45
37
 
46
38
  <link href="/themes/light.css" rel="stylesheet" />
47
39
  <link href="/themes/dark.css" rel="stylesheet" />
48
40
  <link href="/themes/spacing.css" rel="stylesheet" />
41
+ <link href="/themes/form-theme.css" rel="stylesheet" />
49
42
 
50
43
  <link
51
44
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
@@ -85,10 +78,6 @@ const Template: Story<ArgTypes> = ({
85
78
  }
86
79
  </style>
87
80
 
88
- <script>
89
- document.body.classList.add('${theme}')
90
- </script>
91
-
92
81
  <div class="header">
93
82
  <div class="filters">
94
83
  <ox-search-form
@@ -0,0 +1,138 @@
1
+ body {
2
+ /* theme color */
3
+ --primary-color: var(--md-sys-color-primary);
4
+ --secondary-color: var(--md-sys-color-secondary);
5
+ --focus-color: var(--md-sys-color-on-primary);
6
+ --primary-background-color: var(--md-sys-color-primary-container);
7
+ --secondary-background-color: var(--md-sys-color-secondary-container);
8
+
9
+ --focus-background-color: var(--md-sys-color-primary);
10
+ --primary-text-color: var(--md-sys-color-on-primary);
11
+ --secondary-text-color: var(--md-sys-color-on-secondary);
12
+
13
+ /* common style */
14
+ --border-radius: 4px;
15
+ --border-dim-color: 1px solid rgba(0, 0, 0, 0.15);
16
+ --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
17
+
18
+ --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
19
+
20
+ --theme-font: 'Noto', Helvetica;
21
+
22
+ --margin-default: var(--spacing-medium, 8px);
23
+ --margin-narrow: var(--spacing-small, 4px);
24
+ --margin-wide: var(--spacing-large, 12px);
25
+ --padding-default: var(--spacing-medium, 8px);
26
+ --padding-narrow: var(--spacing-small, 4px);
27
+ --padding-wide: var(--spacing-large, 12px);
28
+
29
+ --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
30
+ --scrollbar-thumb-hover-color: var(--md-sys-color-primary);
31
+
32
+ --fontsize-default: 14px;
33
+ --fontsize-small: 13px;
34
+ --fontsize-large: 16px;
35
+
36
+ /* app layout style */
37
+ --app-grid-template-area: 'header header header' 'nav main aside' 'nav footer aside';
38
+
39
+ /* title & description style */
40
+ --title-margin: var(--margin-narrow) 0;
41
+ --title-font: bold 24px var(--theme-font);
42
+ --title-text-color: var(--md-sys-color-secondary);
43
+ --title-font-mobile: bold 20px var(--theme-font);
44
+
45
+ --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
46
+ --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
47
+ --page-description-color: var(--md-sys-color-primary);
48
+
49
+ --subtitle-padding: 12px 5px 3px 5px;
50
+ --subtitle-font: bold 18px var(--theme-font);
51
+ --subtitle-text-color: var(--md-sys-color-primary);
52
+ --subtitle-border-bottom: 1px solid var(--md-sys-color-primary);
53
+
54
+ /* icon style */
55
+ --icon-tiny-size: var(--icon-size-medium, 24px);
56
+ --icon-default-size: var(--icon-size-large, 32px);
57
+ --icon-big-size: var(--icon-size-huge, 48px);
58
+ --icon-default-color: var(--md-sys-color-on-primary);
59
+
60
+ /* material design component themes */
61
+ --mdc-theme-on-primary: var(--md-sys-color-on-primary);
62
+ --mdc-theme-primary: var(--secondary-text-color);
63
+ --mdc-theme-on-secondary: var(--md-sys-color-on-primary);
64
+ --mdc-theme-secondary: var(--md-sys-color-primary);
65
+ --mdc-button-outline-color: var(--md-sys-color-primary);
66
+ --mdc-danger-button-primary-color: var(--status-danger-color);
67
+ --mdc-danger-button-outline-color: var(--status-danger-color);
68
+ --mdc-button-outline-width: 1px;
69
+ --mdc-button-horizontal-padding: 16px;
70
+
71
+ /* button style */
72
+ --button-background-color: var(--md-sys-color-surface-variant);
73
+ --button-background-focus-color: var(--md-sys-color-primary);
74
+ --button-border: var(--border-dim-color);
75
+ --button-border-radius: var(--border-radius);
76
+ --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
77
+ --button-padding: calc(var(--padding-narrow) * 1.5) var(--padding-wide);
78
+ --button-color: var(--md-sys-color-secondary);
79
+ --button-font: 600 var(--fontsize-default) var(--theme-font);
80
+ --button-text-transform: capitalize;
81
+ --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
82
+ --button-activ-border: 1px solid var(--md-sys-color-primary);
83
+ --button-activ-background-color: var(--md-sys-color-primary);
84
+ --button-activ-color: var(--md-sys-color-on-primary);
85
+ --iconbtn-padding: var(--padding-narrow);
86
+
87
+ --button-primary-background-color: var(--md-sys-color-primary);
88
+ --button-primary-active-background-color: var(--status-success-color);
89
+ --button-primary-padding: var(--margin-default) var(--margin-wide);
90
+ --button-primary-color: var(--md-sys-color-on-primary);
91
+ --button-primary-font: bold 16px var(--theme-font);
92
+
93
+ /* table style */
94
+ --th-padding: var(--padding-default);
95
+ --th-border-top: 2px solid var(--md-sys-color-secondary);
96
+ --th-text-transform: capitalize;
97
+ --th-font: bold var(--fontsize-small) var(--theme-font);
98
+ --th-color: var(--md-sys-color-secondary);
99
+
100
+ --tr-background-color: var(--md-sys-color-surface-variant);
101
+ --tr-background-odd-color: rgba(255, 255, 255, 0.4);
102
+ --tr-background-hover-color: #e1f5fe;
103
+ --td-border-line: 1px solid rgba(0, 0, 0, 0.05);
104
+ --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
105
+ --td-padding: var(--padding-default);
106
+ --td-font: normal 13px var(--theme-font);
107
+ --td-color: var(--md-sys-color-secondary);
108
+
109
+ --label-cell-background-color: var(--md-sys-color-surface); /* th or td common background color */
110
+
111
+ /* form style */
112
+ --label-font: normal var(--fontsize-default) var(--theme-font);
113
+ --label-color: var(--md-sys-color-on-surface);
114
+ --label-text-transform: capitalize;
115
+ --input-margin: var(--margin-narrow) 0;
116
+ --input-padding: 6px 2px;
117
+ --input-min-width: 200px;
118
+ --input-font: normal var(--fontsize-default) var(--theme-font);
119
+ --input-hint-font: normal var(--fontsize-small) var(--theme-font);
120
+ --input-hint-color: #666;
121
+ --input-container-max-width: 900px;
122
+ --fieldset-margin: var(--padding-wide) 0;
123
+ --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
124
+ --legend-padding: var(--padding-default) 0;
125
+ --legend-color: var(--md-sys-color-secondary);
126
+ --legend-font: bold 16px var(--theme-font);
127
+ }
128
+
129
+ body.dark {
130
+ caret-color: white;
131
+ }
132
+
133
+ @media only screen and (max-width: 460px) {
134
+ body {
135
+ /* subtitle style */
136
+ --subtitle-margin: 0;
137
+ }
138
+ }
@@ -0,0 +1,59 @@
1
+ body {
2
+ --ox-calendar-padding: var(--padding-default);
3
+
4
+ /* monthly common color */
5
+ --calendar-monthly-text-color: var(--md-sys-color-secondary);
6
+ --calendar-monthly-border: 1px solid rgba(0, 0, 0, 0.1);
7
+ --calendar-monthly-border-width: 0 1px 1px 0px;
8
+
9
+ /* monthly layout */
10
+ --calendar-monthly-ol-margin: var(--margin-default) 0;
11
+ --calendar-monthly-ol-top-border: 2px solid var(--md-sys-color-secondary);
12
+ --calendar-current-monty-background-color: var(--md-sys-color-surface-variant);
13
+ --calendar-monthly-label-align: left;
14
+ --calendar-monthly-label-padding: var(--padding-narrow) 0;
15
+ --calendar-monthly-label-color: var(--md-sys-color-secondary);
16
+ --calendar-monthly-opacity: 0.5;
17
+ --calendar-monthly-date-label-background-color: var(--status-danger-color);
18
+ --calendar-monthly-date-label-margin: var(--margin-narrow);
19
+ --calendar-monthly-date-label-padding: 0px 6px;
20
+ --calendar-monthly-date-label-color: var(--md-sys-color-on-primary);
21
+
22
+ --calendar-monthly-background-color: #f4f4f4;
23
+ --calendar-monthly-event-border-radius: var(--border-radius);
24
+ --calendar-monthly-event-margin: var(--padding-narrow) 0 0 0;
25
+ --calendar-monthly-event-padding: 2px var(--padding-default);
26
+ --calendar-monthly-event-border: 3px solid #ccc;
27
+ --calendar-monthly-event-border-width: 0 0 0 3px;
28
+
29
+ /* weekly common color */
30
+ --calendar-weekly-text-color: var(--md-sys-color-secondary);
31
+ --calendar-weekly-border: 1px solid rgba(0, 0, 0, 0.1);
32
+ --calendar-weekly-border-width: 0 1px 1px 0px;
33
+
34
+ /* weekly layout */
35
+ --calendar-weekly-ol-margin: var(--margin-default) 0;
36
+ --calendar-weekly-ol-top-border: 2px solid var(--md-sys-color-secondary);
37
+ --calendar-current-week-background-color: var(--md-sys-color-surface-variant);
38
+ --calendar-weekly-label-align: center;
39
+ --calendar-weekly-label-padding: var(--padding-narrow) 0;
40
+ --calendar-weekly-label-color: var(--md-sys-color-secondary);
41
+ --calendar-weekly-opacity: 0.5;
42
+ --calendar-weekly-date-label-background-color: var(--status-danger-color);
43
+ --calendar-weekly-date-label-margin: var(--margin-narrow);
44
+ --calendar-weekly-date-label-padding: 0px 6px;
45
+ --calendar-weekly-date-label-color: var(--md-sys-color-on-primary);
46
+
47
+ --calendar-weekly-background-color: #f4f4f4;
48
+ --calendar-weekly-event-border-radius: var(--border-radius);
49
+ --calendar-weekly-event-margin: var(--padding-narrow) 0 0 0;
50
+ --calendar-weekly-event-padding: 2px var(--padding-default);
51
+ --calendar-weekly-event-border: 3px solid #ccc;
52
+ --calendar-weekly-event-border-width: 0 0 0 3px;
53
+ }
54
+
55
+ @media only screen and (max-width: 460px) {
56
+ body {
57
+ --calendar-monthly-text-color: tomato;
58
+ }
59
+ }
package/themes/dark.css CHANGED
@@ -48,104 +48,4 @@
48
48
  --md-sys-color-surface-container: rgb(30 31 37);
49
49
  --md-sys-color-surface-container-high: rgb(41 42 47);
50
50
  --md-sys-color-surface-container-highest: rgb(51 52 58);
51
-
52
- /* primary palette */
53
- --md-ref-palette-primary0:#000000;
54
- --md-ref-palette-primary5:#000E32;
55
- --md-ref-palette-primary10:#001848;
56
- --md-ref-palette-primary15:#00215E;
57
- --md-ref-palette-primary20:#002B74;
58
- --md-ref-palette-primary25:#002B74;
59
- --md-ref-palette-primary30:#0040A2;
60
- --md-ref-palette-primary35:#002B74;
61
- --md-ref-palette-primary40:#1957CA;
62
- --md-ref-palette-primary50:#3E71E5;
63
- --md-ref-palette-primary60:#5C8BFF;
64
- --md-ref-palette-primary70:#89A9FF;
65
- --md-ref-palette-primary80:#B2C5FF;
66
- --md-ref-palette-primary90:#DAE2FF;
67
- --md-ref-palette-primary95:#EEF0FF;
68
- --md-ref-palette-primary98:#FAF8FF;
69
- --md-ref-palette-primary99:#FEFBFF;
70
- --md-ref-palette-primary100:#FFFFFF;
71
-
72
- /* secondary palette */
73
- --md-ref-palette-secondary0:#000000;
74
- --md-ref-palette-secondary5:#00131D;
75
- --md-ref-palette-secondary10:#001E2C;
76
- --md-ref-palette-secondary15:#00293A;
77
- --md-ref-palette-secondary20:#003549;
78
- --md-ref-palette-secondary25:#004058;
79
- --md-ref-palette-secondary30:#004C68;
80
- --md-ref-palette-secondary35:#005978;
81
- --md-ref-palette-secondary40:#006689;
82
- --md-ref-palette-secondary50:#0080AC;
83
- --md-ref-palette-secondary60:#009BCF;
84
- --md-ref-palette-secondary70:#00B8F4;
85
- --md-ref-palette-secondary80:#79D1FF;
86
- --md-ref-palette-secondary90:#C3E8FF;
87
- --md-ref-palette-secondary95:#E3F3FF;
88
- --md-ref-palette-secondary98:#F5FAFF;
89
- --md-ref-palette-secondary99:#FBFCFF;
90
- --md-ref-palette-secondary100:#FFFFFF;
91
-
92
- /* tertiary palette */
93
- --md-ref-palette-tertiary0:#000000;
94
- --md-ref-palette-tertiary5:#00150A;
95
- --md-ref-palette-tertiary10:#002113;
96
- --md-ref-palette-tertiary15:#002C1B;
97
- --md-ref-palette-tertiary20:#003823;
98
- --md-ref-palette-tertiary25:#00452B;
99
- --md-ref-palette-tertiary30:#005234;
100
- --md-ref-palette-tertiary35:#005F3E;
101
- --md-ref-palette-tertiary40:#006C47;
102
- --md-ref-palette-tertiary50:#00885A;
103
- --md-ref-palette-tertiary60:#31A372;
104
- --md-ref-palette-tertiary70:#51BF8B;
105
- --md-ref-palette-tertiary80:#6EDBA5;
106
- --md-ref-palette-tertiary90:#A2F4C7;
107
- --md-ref-palette-tertiary95:#BFFFD9;
108
- --md-ref-palette-tertiary98:#E8FFEF;
109
- --md-ref-palette-tertiary99:#F4FFF5;
110
- --md-ref-palette-tertiary100:#FFFFFF;
111
-
112
- /* error palette */
113
- --md-ref-palette-error0:#000000;
114
- --md-ref-palette-error5:#2d0102;
115
- --md-ref-palette-error10:#410304;
116
- --md-ref-palette-error15:#540507;
117
- --md-ref-palette-error20:#68070a;
118
- --md-ref-palette-error25:#7d0b0e;
119
- --md-ref-palette-error30:#930f14;
120
- --md-ref-palette-error35:#a91319;
121
- --md-ref-palette-error40:#bc1620;
122
- --md-ref-palette-error50:#e03236;
123
- --md-ref-palette-error60:#ff5450;
124
- --md-ref-palette-error70:#ff8982;
125
- --md-ref-palette-error80:#ffb3ad;
126
- --md-ref-palette-error90:#ffdad7;
127
- --md-ref-palette-error95:#ffedeb;
128
- --md-ref-palette-error98:#fff8f7;
129
- --md-ref-palette-error99:#fffbff;
130
- --md-ref-palette-error100:#FFFFFF;
131
-
132
- /* neutral palette */
133
- --md-ref-palette-neutral0:#000000;
134
- --md-ref-palette-neutral5:#111111;
135
- --md-ref-palette-neutral10:#1C1C1C;
136
- --md-ref-palette-neutral15:#262626;
137
- --md-ref-palette-neutral20:#313131;
138
- --md-ref-palette-neutral25:#3C3C3C;
139
- --md-ref-palette-neutral30:#474747;
140
- --md-ref-palette-neutral35:#535353;
141
- --md-ref-palette-neutral40:#5F5F5F;
142
- --md-ref-palette-neutral50:#787878;
143
- --md-ref-palette-neutral60:#929292;
144
- --md-ref-palette-neutral70:#ACACAC;
145
- --md-ref-palette-neutral80:#C8C8C8;
146
- --md-ref-palette-neutral90:#E4E4E4;
147
- --md-ref-palette-neutral95:#F0F0F0;
148
- --md-ref-palette-neutral98:#F9F9F9;
149
- --md-ref-palette-neutral99:#FEFEFE;
150
- --md-ref-palette-neutral100:#FFFFFF;
151
51
  }
@@ -24,6 +24,8 @@ body {
24
24
  --search-form-box-shadow: 0 2px 3px 1px rgba(0, 0, 0, 0.15);
25
25
  --search-form-box-padding: 15px 30px 15px 15px;
26
26
 
27
+ --ox-input-border: none;
28
+
27
29
  --file-uploader-border: 1px solid rgba(0, 0, 0, 0.1);
28
30
  --file-uploader-background-color: var(--md-sys-color-background);
29
31
  --file-uploader-font: normal 12px/20px var(--theme-font);
@@ -38,7 +40,7 @@ body {
38
40
  --file-uploader-li-padding: 2px 5px 0px 5px;
39
41
  --file-uploader-li-border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
40
42
  --file-uploader-li-icon-margin: 2px 0 2px 5px;
41
- --file-uploader-li-icon-font: normal 15px var(--mdc-icon-font, 'Material Icons');
43
+ --file-uploader-li-icon-font: normal 15px var(--md-icon-font, 'Material Symbols Outlined');
42
44
  --file-uploader-li-icon-focus-color: var(--md-sys-color-primary);
43
45
  }
44
46