@operato/form 7.0.0-rc.9 → 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 (56) hide show
  1. package/.storybook/preview.js +52 -0
  2. package/CHANGELOG.md +46 -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 +2 -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 +2 -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 +2 -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 +3 -21
  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 +2 -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 +2 -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 +2 -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 +2 -8
  35. package/stories/ox-filters-form-base-bounded.stories.ts +2 -8
  36. package/stories/ox-filters-form-base-change-handler.stories.ts +2 -8
  37. package/stories/ox-filters-form-base-page-preference.stories.ts +3 -21
  38. package/stories/ox-filters-form-base.stories.ts +2 -6
  39. package/stories/ox-search-form-change-handler.stories.ts +2 -8
  40. package/stories/ox-search-form.stories.ts +2 -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/grist-theme.css +44 -40
  45. package/themes/layout-theme.css +94 -0
  46. package/themes/light.css +3 -103
  47. package/themes/material-theme.css +23 -0
  48. package/themes/oops-theme.css +22 -0
  49. package/themes/report-theme.css +47 -0
  50. package/themes/spacing.css +7 -27
  51. package/themes/state-color.css +1 -1
  52. package/themes/tooltip-theme.css +11 -0
  53. package/themes/dark-hc.css +0 -151
  54. package/themes/dark-mc.css +0 -151
  55. package/themes/light-hc.css +0 -151
  56. package/themes/light-mc.css +0 -151
@@ -131,7 +131,7 @@ export const MultiColumnFormStyles = css`
131
131
  .multi-column-form [options-wrap] {
132
132
  grid-column: span 12 / auto;
133
133
  display: grid;
134
- grid-gap: var(--padding-default, var(--spacing-small)) var(--padding-narrow, var(--spacing-small));
134
+ grid-gap: var(--padding-default, var(--spacing-small)) var(--spacing-small, var(--spacing-small));
135
135
  grid-template-columns: repeat(12, 1fr);
136
136
  }
137
137
  .multi-column-form [options-wrap] input[type='checkbox'] + label,
@@ -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,10 +24,9 @@ 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" />
@@ -74,10 +72,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
74
72
  }
75
73
  </style>
76
74
 
77
- <script>
78
- document.body.classList.add('${theme}')
79
- </script>
80
-
81
75
  <div class="header">
82
76
  <div class="filters">
83
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,10 +27,9 @@ 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" />
@@ -77,10 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
77
75
  }
78
76
  </style>
79
77
 
80
- <script>
81
- document.body.classList.add('${theme}')
82
- </script>
83
-
84
78
  <div class="header">
85
79
  <div class="filters">
86
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,10 +27,9 @@ 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" />
@@ -77,10 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
77
75
  }
78
76
  </style>
79
77
 
80
- <script>
81
- document.body.classList.add('${theme}')
82
- </script>
83
-
84
78
  <div class="header">
85
79
  <div class="filters">
86
80
  <ox-filters-form-base
@@ -33,9 +33,9 @@ interface ArgTypes {
33
33
  const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
34
34
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
35
35
 
36
- <link href="/themes/app-theme.css" rel="stylesheet" />
37
- <link href="/themes/form-theme.css" rel="stylesheet" />
38
- <link href="/themes/input-theme.css" rel="stylesheet" />
36
+ <link href="/themes/light.css" rel="stylesheet" />
37
+ <link href="/themes/dark.css" rel="stylesheet" />
38
+ <link href="/themes/spacing.css" rel="stylesheet" />
39
39
  <link href="/themes/form-theme.css" rel="stylesheet" />
40
40
 
41
41
  <link
@@ -58,24 +58,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTy
58
58
  </style>
59
59
 
60
60
  <style>
61
- ox-filters-form-base {
62
- --input-gap-vertical: 8px;
63
- --input-gap-horizontal: 16px;
64
-
65
- --ox-filters-input-placeholder-color: var(--primary-color);
66
-
67
- --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
68
- --ox-filters-input-focus-border: 1px solid var(--primary-color);
69
- --ox-filters-input-font: normal 14px var(--theme-font);
70
- --ox-filters-input-color: var(--primary-text-color);
71
- --ox-filters-input-focus-color: var(--primary-color);
72
- --ox-filters-label-font: normal 14px var(--theme-font);
73
- --ox-filters-label-color: var(--primary-text-color);
74
-
75
- --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
76
- --ox-filters-input-padding: 6px 2px;
77
- }
78
-
79
61
  div.filters {
80
62
  position: relative;
81
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,10 +26,9 @@ 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" />
@@ -77,8 +75,6 @@ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive, theme =
77
75
  </style>
78
76
 
79
77
  <script>
80
- document.body.classList.add('${theme}')
81
-
82
78
  setInterval(() => {
83
79
  const filters = document.body.querySelector('ox-filters-form-base')
84
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,10 +27,9 @@ 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" />
@@ -77,10 +75,6 @@ const Template: Story<ArgTypes> = ({ fields, hideSearchButton, autofocus, theme
77
75
  }
78
76
  </style>
79
77
 
80
- <script>
81
- document.body.classList.add('${theme}')
82
- </script>
83
-
84
78
  <div class="header">
85
79
  <div class="filters">
86
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,16 +30,9 @@ 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" />
@@ -86,10 +78,6 @@ const Template: Story<ArgTypes> = ({
86
78
  }
87
79
  </style>
88
80
 
89
- <script>
90
- document.body.classList.add('${theme}')
91
- </script>
92
-
93
81
  <div class="header">
94
82
  <div class="filters">
95
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
  }