this.gui 1.0.16 → 1.0.18

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 (104) hide show
  1. package/README.md +191 -23
  2. package/dist/style.css +1 -1
  3. package/dist/this-gui.es.js +2879 -1945
  4. package/dist/this-gui.umd.js +24 -24
  5. package/package.json +3 -4
  6. package/src/App.jsx +19 -40
  7. package/src/CreatePage.jsx +61 -0
  8. package/src/MDXEditor.jsx +51 -0
  9. package/src/Page.jsx +28 -0
  10. package/src/PageDashboard.jsx +56 -0
  11. package/src/SiteBuilder.jsx +95 -26
  12. package/src/example.json +43 -0
  13. package/src/scripts/ComponentRegistry.js +70 -0
  14. package/src/scripts/postinstall.js +60 -10
  15. package/src/scripts/renderComponents.js +11 -0
  16. package/src/stories/Atoms/Badge/Badge.css +1 -0
  17. package/src/stories/Atoms/Badge/Badge.stories.jsx +1 -0
  18. package/src/stories/Atoms/Button/Button.css +259 -58
  19. package/src/stories/Atoms/Button/Button.jsx +8 -11
  20. package/src/stories/Atoms/Button/Button.stories.jsx +65 -40
  21. package/src/stories/Atoms/Container/Container.css +420 -39
  22. package/src/stories/Atoms/Container/Container.jsx +98 -36
  23. package/src/stories/Atoms/Container/Container.stories.jsx +120 -79
  24. package/src/stories/Atoms/Grid/Grid.css +160 -0
  25. package/src/stories/Atoms/Grid/Grid.jsx +43 -0
  26. package/src/stories/Atoms/Grid/Grid.stories.jsx +84 -0
  27. package/src/stories/Atoms/Link/Link.css +6 -26
  28. package/src/stories/Atoms/Link/Link.jsx +11 -21
  29. package/src/stories/Atoms/ProgressBar/ProgressBar.css +1 -1
  30. package/src/stories/Atoms/ProgressBar/ProgressBar.jsx +1 -1
  31. package/src/stories/Atoms/ProgressBar/ProgressBar.stories.jsx +1 -1
  32. package/src/stories/Atoms/Section/Section.css +268 -0
  33. package/src/stories/Atoms/Section/Section.jsx +63 -0
  34. package/src/stories/Atoms/Section/Section.stories.jsx +46 -0
  35. package/src/stories/Atoms/TextArea/TextArea.css +1 -0
  36. package/src/stories/Atoms/TextArea/TextArea.jsx +1 -0
  37. package/src/stories/Atoms/TextArea/TextArea.stories.jsx +1 -0
  38. package/src/stories/Atoms/TextInput/TextInput.css +1 -0
  39. package/src/stories/Atoms/TextInput/TextInput.jsx +1 -0
  40. package/src/stories/Atoms/TextInput/TextInput.stories.jsx +1 -0
  41. package/src/stories/Atoms/Toggle/Toggle.css +1 -0
  42. package/src/stories/Atoms/Toggle/Toggle.jsx +1 -0
  43. package/src/stories/Atoms/Toggle/Toggle.stories.jsx +1 -0
  44. package/src/stories/Atoms/Tooltip/Tooltip.css +1 -0
  45. package/src/stories/Atoms/Tooltip/Tooltip.jsx +1 -0
  46. package/src/stories/Atoms/Tooltip/Tooltip.stories.jsx +1 -0
  47. package/src/stories/Atoms/Video/Video.css +1 -0
  48. package/src/stories/Atoms/Video/Video.jsx +1 -0
  49. package/src/stories/Atoms/Video/Video.stories.jsx +1 -0
  50. package/src/stories/Atoms/index.js +4 -0
  51. package/src/stories/Atoms/meta_Atoms.js +4 -1
  52. package/src/stories/Layouts/Accordion/Accordion.css +285 -8
  53. package/src/stories/Layouts/Accordion/Accordion.jsx +62 -19
  54. package/src/stories/Layouts/Accordion/Accordion.stories.jsx +30 -19
  55. package/src/stories/Layouts/index.js +0 -6
  56. package/src/stories/Layouts/meta_Layouts.js +2 -5
  57. package/src/stories/Molecules/Accordion/Accordion.css +1 -1
  58. package/src/stories/Molecules/Accordion/Accordion.jsx +1 -1
  59. package/src/stories/Molecules/Accordion/Accordion.stories.jsx +1 -1
  60. package/src/stories/Molecules/AudioPlayer/AudioPlayer.css +95 -2
  61. package/src/stories/Molecules/AudioPlayer/AudioPlayer.jsx +232 -13
  62. package/src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx +46 -11
  63. package/src/stories/Molecules/AvatarWithName/AvatarWithName.css +128 -2
  64. package/src/stories/Molecules/AvatarWithName/AvatarWithName.jsx +69 -14
  65. package/src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx +12 -12
  66. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.css +145 -2
  67. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.jsx +39 -13
  68. package/src/stories/Molecules/Breadcrumbs/Breadcrumbs.stories.jsx +27 -11
  69. package/src/stories/Molecules/ButtonGroup/ButtonGroup.css +463 -2
  70. package/src/stories/Molecules/ButtonGroup/ButtonGroup.jsx +34 -12
  71. package/src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx +36 -12
  72. package/src/stories/Molecules/Card/Card.css +39 -2
  73. package/src/stories/Molecules/Card/Card.jsx +80 -13
  74. package/src/stories/Molecules/Card/Card.stories.jsx +27 -13
  75. package/src/stories/Molecules/ComparisonTable/ComparisonTable.css +33 -2
  76. package/src/stories/Molecules/ComparisonTable/ComparisonTable.jsx +91 -12
  77. package/src/stories/Molecules/ComparisonTable/ComparisonTable.stories.jsx +73 -12
  78. package/src/stories/Molecules/Dropdown/Dropdown.css +192 -0
  79. package/src/stories/Molecules/Dropdown/Dropdown.jsx +96 -0
  80. package/src/stories/Molecules/Dropdown/Dropdown.stories.jsx +45 -0
  81. package/src/stories/Molecules/index.js +2 -1
  82. package/src/stories/Molecules/meta_Molecules.js +6 -3
  83. package/src/themes/styles/neurons/light.css +94 -204
  84. package/dist/Styles.md +0 -446
  85. package/dist/context.md +0 -942
  86. package/src/Theme.jsx +0 -28
  87. package/src/components/CodeBlock.jsx +0 -22
  88. package/src/components/ComponentFactory.jsx +0 -36
  89. package/src/components/ComponentRegistry.js +0 -21
  90. package/src/scripts/generateComponents.js +0 -166
  91. package/src/scripts/verifyLayouts.js +0 -175
  92. package/src/scripts/verifyMolecules.js +0 -158
  93. package/src/scripts/verifyTemplates.js +0 -154
  94. package/src/scripts/verify_and_install_atoms.js +0 -211
  95. package/src/stories/Layouts/DropdownMenu/DropdownMenu.css +0 -16
  96. package/src/stories/Layouts/DropdownMenu/DropdownMenu.jsx +0 -31
  97. package/src/stories/Layouts/DropdownMenu/DropdownMenu.stories.jsx +0 -28
  98. package/src/stories/Layouts/Grid/Grid.css +0 -4
  99. package/src/stories/Layouts/Grid/Grid.jsx +0 -13
  100. package/src/stories/Layouts/Grid/Grid.stories.jsx +0 -28
  101. package/src/stories/Layouts/Section/Section.css +0 -16
  102. package/src/stories/Layouts/Section/Section.jsx +0 -31
  103. package/src/stories/Layouts/Section/Section.stories.jsx +0 -28
  104. /package/src/themes/{README.md → README_Styles.md} +0 -0
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { Dropdown } from './Dropdown';
3
+
4
+ export default {
5
+ title: 'Molecules/Menus/Dropdown',
6
+ component: Dropdown,
7
+ argTypes: {
8
+ color: {
9
+ control: 'select',
10
+ options: [
11
+ 'primary', 'secondary', 'info', 'warning', 'alert', 'success', 'neutral', 'dark',
12
+ 'classy-color-1', 'classy-color-2', 'classy-color-3', 'classy-color-4', 'classy-color-5',
13
+ 'small-switch-color-1', 'small-switch-color-2',
14
+ 'natural-color-1', 'natural-color-2', 'natural-color-3',
15
+ 'grey-friend-1', 'grey-friend-2', 'shade-1', 'shade-2', 'shade-3', 'shade-4',
16
+ ],
17
+ },
18
+ variant: {
19
+ control: 'select',
20
+ options: ['primary', 'secondary'],
21
+ },
22
+ searchable: { control: 'boolean' },
23
+ showArrow: { control: 'boolean', defaultValue: true },
24
+ },
25
+ };
26
+
27
+ const options = [
28
+ 'Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5'
29
+ ];
30
+
31
+ export const BasicDropdown = (args) => <Dropdown {...args} options={options} />;
32
+ BasicDropdown.args = {
33
+ placeholder: 'Select an option',
34
+ searchable: false,
35
+ variant: 'primary',
36
+ color: 'primary',
37
+ };
38
+
39
+ export const SearchableDropdown = (args) => <Dropdown {...args} options={options} />;
40
+ SearchableDropdown.args = {
41
+ placeholder: 'Type to search...',
42
+ searchable: true,
43
+ variant: 'primary',
44
+ color: 'info',
45
+ };
@@ -1,9 +1,9 @@
1
1
  // src/stories/Molecules/index.js
2
-
3
2
  // Import all components as named exports
4
3
  import { Navbar } from './Navbar/Navbar';
5
4
  import { Sidebar } from './Sidebar/Sidebar';
6
5
  import { Breadcrumbs } from './Breadcrumbs/Breadcrumbs';
6
+ import { Dropdown } from './Dropdown/Dropdown';
7
7
  import { InputGroup } from './InputGroup/InputGroup';
8
8
  import { InputWithLabel } from './InputWithLabel/InputWithLabel';
9
9
  import { SearchBar } from './SearchBar/SearchBar';
@@ -30,6 +30,7 @@ import { SelectTheme } from './SelectTheme/SelectTheme';
30
30
  const Molecules = {
31
31
  Navbar,
32
32
  Sidebar,
33
+ Dropdown,
33
34
  Breadcrumbs,
34
35
  InputGroup,
35
36
  InputWithLabel,
@@ -5,6 +5,9 @@ const Molecules = {
5
5
  { name: "Sidebar", paths: { css: "./Sidebar/Sidebar.css", globalCss: "styles/global.css", jsx: "./Sidebar/Sidebar.jsx", stories: "./Sidebar/Sidebar.stories.jsx" }},
6
6
  { name: "Breadcrumbs", paths: { css: "./Breadcrumbs/Breadcrumbs.css", globalCss: "styles/global.css", jsx: "./Breadcrumbs/Breadcrumbs.jsx", stories: "./Breadcrumbs/Breadcrumbs.stories.jsx" }},
7
7
  ],
8
+ "Menus": [
9
+ { name: "Dropdown", paths: { css: "./Dropdown/Dropdown.css", globalCss: "styles/global.css", jsx: "./Layout/Dropdown/Dropdown.jsx", stories: "src/stories/Layout/Dropdown/Dropdown.stories.jsx" }},
10
+ ],
8
11
  "FormElements": [
9
12
  { name: "InputGroup ", paths: { css: "./InputGroup/InputGroup.css", globalCss: "styles/global.css", jsx: "./InputGroup/InputGroup.jsx", stories: "src/stories/Molecules/InputGroup/InputGroup.stories.jsx" }},
10
13
  { name: "InputWithLabel", paths: { css: "./InputWithLabel/InputWithLabel.css", globalCss: "styles/global.css", jsx: "./InputWithLabel/InputWithLabel.jsx", stories: "src/stories/Molecules/InputWithLabel/InputWithLabel.stories.jsx" }},
@@ -16,18 +19,18 @@ const Molecules = {
16
19
  { name: "IconButton", paths: { css: "./IconButton/IconButton.css", globalCss: "styles/global.css", jsx: "./IconButton/IconButton.jsx", stories: "src/stories/Molecules/IconButton/IconButton.stories.jsx" }},
17
20
  { name: "ButtonGroup", paths: { css: "./ButtonGroup/ButtonGroup.css", globalCss: "styles/global.css", jsx: "./ButtonGroup/ButtonGroup.jsx", stories: "src/stories/Molecules/ButtonGroup/ButtonGroup.stories.jsx" }},
18
21
  ],
19
- "MediaMolecules": [
22
+ "Media": [
20
23
  { name: "ImageWithCaption", paths: { css: "./ImageWithCaption/ImageWithCaption.css", globalCss: "styles/global.css", jsx: "./ImageWithCaption/ImageWithCaption.jsx", stories: "src/stories/Molecules/ImageWithCaption/ImageWithCaption.stories.jsx" }},
21
24
  { name: "VideoWithDescription", paths: { css: "./VideoWithDescription/VideoWithDescription.css", globalCss: "styles/global.css", jsx: "./VideoWithDescription/VideoWithDescription.jsx", stories: "src/stories/Molecules/VideoWithDescription/VideoWithDescription.stories.jsx" }},
22
- { name: "AvatarWithName", paths: { css: "./AvatarWithName/AvatarWithName.css", globalCss: "styles/global.css", jsx: "./AvatarWithName/AvatarWithName.jsx", stories: "src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx" }},
23
25
  { name: "AudioPlayer", paths: { css: "./AudioPlayer/AudioPlayer.css", globalCss: "styles/global.css", jsx: "./AudioPlayer/AudioPlayer.jsx", stories: "src/stories/Molecules/AudioPlayer/AudioPlayer.stories.jsx" }},
24
26
  ],
25
- "ContentDisplay": [
27
+ "Display": [
26
28
  { name: "SelectTheme", paths: { css: "./SelectTheme/SelectTheme.css", globalCss: "styles/global.css", jsx: "./SelectTheme/SelectTheme.jsx", stories: "src/stories/Molecules/SelectTheme/SelectTheme.stories.jsx" }},
27
29
  { name: "Card", paths: { css: "./Card/Card.css", globalCss: "styles/global.css", jsx: "./Card/Card.jsx", stories: "./Card/Card.stories.jsx" }},
28
30
  { name: "MediaCard", paths: { css: "./MediaCard/MediaCard.css", globalCss: "styles/global.css", jsx: "./MediaCard/MediaCard.jsx", stories: "./MediaCard/MediaCard.stories.jsx" }},
29
31
  { name: "List", paths: { css: "./List/List.css", globalCss: "styles/global.css", jsx: "./List/List.jsx", stories: "./List/List.stories.jsx" }},
30
32
  { name: "Accordion", paths: { css: "./Accordion/Accordion.css", globalCss: "styles/global.css", jsx: "./Accordion/Accordion.jsx", stories: "./Accordion/Accordion.stories.jsx" }},
33
+ { name: "AvatarWithName", paths: { css: "./AvatarWithName/AvatarWithName.css", globalCss: "styles/global.css", jsx: "./AvatarWithName/AvatarWithName.jsx", stories: "src/stories/Molecules/AvatarWithName/AvatarWithName.stories.jsx" }},
31
34
  ],
32
35
  "FeedbackMolecules": [
33
36
  { name: "Notification", paths: { css: "./Notification/Notification.css", globalCss: "styles/global.css", jsx: "./Notification/Notification.jsx", stories: "src/stories/Molecules/Notification/Notification.stories.jsx" }},
@@ -1,124 +1,86 @@
1
1
  /* src/themes/styles/neurons/light.css */
2
2
  /* Design Tokens (CSS Variables) */
3
3
  :root {
4
- /* Primary Colors */
5
- --primary-color: #1F877D; /* Neurons teal */
6
- --primary-color-hover: #16655C; /* Darker teal for hover effects */
7
-
8
- /* Secondary Colors */
9
- --secondary-color: #39a182; /* Bright teal */
10
- --secondary-color-hover: #00877A; /* Darker teal for hover effects */
11
-
12
- /* Semantic Colors */
13
- --info-color: #008699; /* Light teal */
14
- --info-color-hover: #008799d; /* Adjusted color for hover */
15
-
16
- --warning-color: #FF6F61; /* Soft coral (Orange) */
17
- --warning-color-hover: #e65b54; /* Adjusted color for hover */
18
-
19
- --alert-color: #ffcc00; /* Yellow */
20
- --alert-color-hover: #F1C40F; /* Adjusted color for hover */
21
-
22
- --success-color: #00B4B8; /* Deep gray (Blueish) */
23
- --success-color-hover: #0095991; /* Darker blueish for hover */
24
-
25
- --neutral-color: #a4a4a4; /* Light gray */
26
- --neutral-color-hover: #CCCCCC; /* Medium gray for hover */
27
-
28
- --dark-color: #2C2C2C; /* Deep gray */
29
- --dark-color-hover: #1A1A1A; /* Darker gray for hover */
30
-
31
- /* Classy Palette */
32
- --classy-color-1: #16655c;
33
- --classy-color-2: #96b1ac;
34
- --classy-color-3: #637c78;
35
- --classy-color-4: #405b83;
36
- --classy-color-5: #738db8;
37
-
38
- /* Small Switch Palette */
39
- --small-switch-color-1: #deefe6;
40
- --small-switch-color-2: #4e8a6e;
41
-
42
- /* Natural Palette */
43
- --natural-color-1: #00aa96;
44
- --natural-color-2: #e8fefa;
45
- --natural-color-3: #e7fefe;
46
-
47
- /* Grey Friends */
48
- --grey-friend-1: #344b47;
49
- --grey-friend-2: #96b1ac;
50
-
51
- /* Shades */
52
- --shade-1: #3b847a;
53
- --shade-2: #5da59a;
54
- --shade-3: #7ec7bc;
55
- --shade-4: #a0eade;
56
-
57
-
58
- /* Text Colors */
59
- --text-color: #2C2C2C; /* Dark text color for contrast */
60
- --text-color-inverse: #FFFFFF; /* For buttons with dark backgrounds */
61
-
62
- /* Border Colors */
63
- --border-color: #DDDDDD; /* Light border color */
64
- --secondary-border-color: var(--secondary-color); /* For secondary buttons */
65
-
66
- /* Button Sizes */
67
- --button-font-size: 14px; /* Base button font size */
68
- --button-padding-vertical: 11px;
69
- --button-padding-horizontal: 21px;
70
- --button-padding: var(--button-padding-vertical) var(--button-padding-horizontal);
71
-
72
- /* Large and Small Sizes */
73
- --button-font-size-large: calc(var(--button-font-size) * 1.1); /* 10% larger */
74
- --button-font-size-small: calc(var(--button-font-size) * 0.9); /* 10% smaller */
75
-
76
- --button-padding-vertical-large: calc(var(--button-padding-vertical) * 1.1);
77
- --button-padding-horizontal-large: calc(var(--button-padding-horizontal) * 1.1);
78
- --button-padding-large: var(--button-padding-vertical-large) var(--button-padding-horizontal-large);
79
-
80
- --button-padding-vertical-small: calc(var(--button-padding-vertical) * 0.9);
81
- --button-padding-horizontal-small: calc(var(--button-padding-horizontal) * 0.9);
82
- --button-padding-small: var(--button-padding-vertical-small) var(--button-padding-horizontal-small);
83
-
84
- /* Background and Text */
85
- --background-color: #FFFFFF; /* Pure white background */
86
- --muted-text-color: #555555; /* Muted text color */
87
-
88
- /* Link Colors */
89
- --link-color: #1F877D; /* Neurons teal */
90
- --link-hover-color: #555555; /* Greyish color on hover */
91
-
92
- /* Typography */
93
- --font-family: 'Roboto', sans-serif;
94
- --font-size-base: 17px; /* Slightly larger base font size */
95
- --font-size-small: 15px;
96
- --font-size-large: 19px;
97
- --line-height: 1.6;
98
- --font-weight-regular: 400; /* Normal font weight */
99
- --font-weight-medium: 500; /* Medium font weight */
100
- --font-weight-bold: 600; /* Less heavy bold weight */
101
- --font-weight-heavy: 700; /* For headings */
102
-
103
- /* Spacing */
104
- --spacing-xs: 4px;
105
- --spacing-sm: 8px;
106
- --spacing-md: 16px;
107
- --spacing-lg: 32px;
108
-
109
- /* Borders */
110
- --border-radius: 6px; /* Slightly more rounded corners */
111
- --border-width: 1px;
112
-
113
- /* Shadows */
114
- --box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
115
-
116
- /* Transitions */
117
- --transition-speed: 0.3s;
118
-
119
- /* Z-index */
120
- --z-index-modal: 1000;
121
- --z-index-tooltip: 1050;
4
+ /* Primary Colors */
5
+ --primary-color: #1F877D; /* Neurons teal */
6
+ --primary-color-hover: #16655C; /* Darker teal for hover effects */
7
+ /* Secondary Colors */
8
+ --secondary-color: #39a182; /* Bright teal */
9
+ --secondary-color-hover: #00877A; /* Darker teal for hover effects */
10
+ /* Link Colors */
11
+ --link-color: #1F877D; /* Neurons teal */
12
+ --link-hover-color: #008699; /* Greyish color on hover */
13
+ --link-visited-color: #555555; /* Optional: custom color for visited links */
14
+ /* onFocus Color */
15
+ --focus-color: #1E90FF; /* Dodger Blue */
16
+ /* Semantic Colors */
17
+ --info-color: #008699; /* Light teal */
18
+ --info-color-hover: #008799d; /* Adjusted color for hover */
19
+ --warning-color: #FF6F61; /* Soft coral (Orange) */
20
+ --warning-color-hover: #e65b54; /* Adjusted color for hover */
21
+ --alert-color: #ffcc00; /* Yellow */
22
+ --alert-color-hover: #F1C40F; /* Adjusted color for hover */
23
+ --success-color: #00B4B8; /* Deep gray (Blueish) */
24
+ --success-color-hover: #0095991; /* Darker blueish for hover */
25
+ --neutral-color: #a4a4a4; /* Light gray */
26
+ --neutral-color-hover: #CCCCCC; /* Medium gray for hover */
27
+ --dark-color: #2C2C2C; /* Deep gray */
28
+ --dark-color-hover: #1A1A1A; /* Darker gray for hover */
29
+ /* Classy Palette */
30
+ --classy-color-1: #16655c;
31
+ --classy-color-2: #96b1ac;
32
+ --classy-color-3: #637c78;
33
+ --classy-color-4: #405b83;
34
+ --classy-color-5: #738db8;
35
+ /* Small Switch Palette */
36
+ --small-switch-color-1: #deefe6;
37
+ --small-switch-color-2: #4e8a6e;
38
+ /* Natural Palette */
39
+ --natural-color-1: #00aa96;
40
+ --natural-color-2: #e8fefa;
41
+ --natural-color-3: #e7fefe;
42
+ /* Grey Friends */
43
+ --grey-friend-1: #344b47;
44
+ --grey-friend-2: #96b1ac;
45
+ /* Shades */
46
+ --shade-1: #3b847a;
47
+ --shade-2: #5da59a;
48
+ --shade-3: #7ec7bc;
49
+ --shade-4: #a0eade;
50
+ /* Typography */
51
+ --font-family: 'Roboto', sans-serif;
52
+ --font-size-base: 16px; /* Slightly larger base font size */
53
+ --font-size-small: 14px;
54
+ --font-size-large: 19px;
55
+ --line-height: 1.6;
56
+ --font-weight-regular: 400; /* Normal font weight */
57
+ --font-weight-medium: 500; /* Medium font weight */
58
+ --font-weight-bold: 600; /* Less heavy bold weight */
59
+ --font-weight-heavy: 700; /* For headings */
60
+ /* Text Colors */
61
+ --text-color: #2C2C2C; /* Dark text color for contrast */
62
+ --text-color-inverse: #FFFFFF; /* For buttons with dark backgrounds */
63
+ /* Background and Text */
64
+ --background-color: #FFFFFF; /* Pure white background */
65
+ --muted-text-color: #555555; /* Muted text color */
66
+ /* Spacing */
67
+ --spacing-xs: 6px;
68
+ --spacing-sm: 16px;
69
+ --spacing-md: 34px;
70
+ --spacing-lg: 55px;
71
+ /* Borders */
72
+ --border-radius: 8px; /* Slightly more rounded corners */
73
+ --border-width: 1px;
74
+ /* Border Colors */
75
+ --border-color: #DDDDDD; /* Light border color */
76
+ --secondary-border-color: var(--secondary-color); /* For secondary buttons */
77
+ /* Shadows */
78
+ --box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
79
+ /* Transitions */
80
+ --transition-speed: 0.3s;
81
+ /* Z-index */
82
+ --z-index-modal: 1000;
83
+ --z-index-tooltip: 1050;
122
84
  }
123
85
 
124
86
  /* Global Reset */
@@ -156,92 +118,23 @@ p {
156
118
  color: var(--text-color);
157
119
  }
158
120
 
159
- /* Links */
160
- a {
121
+ /* Base link styles */
122
+ a, .link {
161
123
  color: var(--link-color);
162
- text-decoration: none;
163
- transition: color var(--transition-speed) ease;
164
- }
165
-
166
- a:hover {
167
- color: var(--link-hover-color);
168
- text-decoration: underline;
169
- }
170
-
171
-
172
- /* Forms */
173
- input, textarea, select {
174
- padding: var(--spacing-sm);
175
- border-radius: var(--border-radius);
176
- border: var(--border-width) solid var(--border-color);
177
124
  font-size: var(--font-size-base);
178
125
  font-family: var(--font-family);
179
- background-color: #FFFFFF;
180
- color: var(--text-color);
181
- transition: border-color var(--transition-speed) ease;
182
- }
183
-
184
- input:focus, textarea:focus, select:focus {
185
- border-color: var(--primary-color);
186
- outline: none;
187
- }
188
-
189
- /* Layout */
190
- .container {
191
- max-width: 1200px;
192
- margin: 0 auto;
193
- padding: var(--spacing-md);
194
- }
195
-
196
- .grid {
197
- display: flex;
198
- gap: var(--spacing-md);
199
- flex-wrap: wrap;
126
+ transition: color var(--transition-speed) ease, text-decoration var(--transition-speed) ease;
200
127
  }
201
128
 
202
- .grid__item {
203
- flex: 1;
204
- min-width: 200px;
205
- }
206
-
207
- /* Sidebar */
208
- .sidebar {
209
- background-color: #F8F8F8; /* Very light gray */
210
- padding: var(--spacing-md);
211
- border-right: var(--border-width) solid var(--border-color); /* Consistent border */
212
- }
213
-
214
- .sidebar__link {
215
- display: block;
216
- padding: var(--spacing-sm);
217
- color: var(--text-color);
218
- text-decoration: none;
219
- font-weight: var(--font-weight-medium);
220
- transition: background-color var(--transition-speed) ease, color var(--transition-speed) ease;
221
- }
222
-
223
- .sidebar__link:hover {
224
- background-color: #EEEEEE; /* Slightly darker on hover */
225
- color: var(--text-color);
226
- }
227
-
228
- /* Navbar */
229
- .navbar {
230
- background-color: #FFFFFF;
231
- padding: var(--spacing-md);
232
- border-bottom: var(--border-width) solid var(--border-color); /* Consistent border */
233
- }
234
-
235
- .navbar__link {
236
- color: var(--link-color);
237
- text-decoration: none;
238
- margin-right: var(--spacing-md);
239
- font-weight: var(--font-weight-medium);
240
- transition: color var(--transition-speed) ease;
129
+ a:hover, .link:hover {
130
+ color: var(--link-hover-color);
131
+ text-decoration: underline;
241
132
  }
242
133
 
243
- .navbar__link:hover {
244
- color: var(--link-hover-color);
134
+ /* Accessibility - global */
135
+ a:focus, button:focus, .link:focus {
136
+ outline: 2px solid var(--focus-color);
137
+ outline-offset: 2px;
245
138
  }
246
139
 
247
140
  /* Utility Classes */
@@ -251,12 +144,6 @@ input:focus, textarea:focus, select:focus {
251
144
  .d-flex { display: flex; }
252
145
  .flex-column { flex-direction: column; }
253
146
 
254
- /* Accessibility */
255
- a:focus, button:focus {
256
- outline: 2px solid var(--primary-color);
257
- outline-offset: 2px;
258
- }
259
-
260
147
  @media (prefers-reduced-motion: reduce) {
261
148
  * {
262
149
  animation: none;
@@ -277,4 +164,7 @@ a:focus, button:focus {
277
164
  .navbar {
278
165
  padding: var(--spacing-sm);
279
166
  }
280
- }
167
+ }
168
+
169
+
170
+