@lottecode/lottecss 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ @import "tailwindcss";
2
+
3
+ @import "./layout.css";
4
+ @import "./column.css";
5
+ @import "./card.css";
6
+ @import "./colors.css";
7
+ @import "./fonts.css";
8
+ @import "./typography.css";
9
+ @import "./navigation.css";
10
+ @import "./header.css";
11
+ @import "./lists.css";
12
+ @import "./tables.css";
13
+ @import "./forms.css";
14
+ @import "./links.css";
15
+ @import "./media.css";
16
+ @import "./tabs.css";
17
+ @import "./accordion.css";
18
+ @import "./button.css";
19
+ @import "./utility.css";
20
+ @import "./globals.css";
@@ -0,0 +1,115 @@
1
+ html {
2
+ main {
3
+ max-width: 1024px;
4
+ margin: 0 auto;
5
+ }
6
+
7
+ main.sage-bg-page {
8
+ background-color: var(--color-sage);
9
+ }
10
+
11
+ main.dark-bg-page {
12
+ background-color: black;
13
+ color: white;
14
+ }
15
+
16
+ main.dark-bg-page h1,
17
+ main.dark-bg-page p,
18
+ main.dark-bg-page label,
19
+ main.dark-bg-page h4 {
20
+ color: var(--color-background);
21
+ }
22
+
23
+ main.dark-bg-page button {
24
+ background-color: var(--color-highlight);
25
+ color: black;
26
+ }
27
+
28
+ main.dark-bg-page table {
29
+ border-color: var(--color-background);
30
+ }
31
+
32
+ main.dark-bg-page th,
33
+ main.dark-bg-page td {
34
+ color: var(--color-background);
35
+ border-color: var(--color-background);
36
+ }
37
+
38
+ main.dark-bg-page thead th {
39
+ background-color: var(--color-background);
40
+ color: var(--color-foreground);
41
+ }
42
+
43
+ main.container {
44
+ max-width: 1024px;
45
+ margin: 0 auto;
46
+ /*padding: 1.5rem 1rem;*/
47
+ min-height: 80vh;
48
+ }
49
+
50
+ main.full-width-page .container {
51
+ max-width: 1480px;
52
+ margin-left: auto;
53
+ margin-right: auto;
54
+ padding: 1.5rem 2rem;
55
+ min-height: 80vh;
56
+ }
57
+
58
+ nav {
59
+ max-width: 72rem;
60
+ }
61
+
62
+ footer {
63
+ max-width: 800px;
64
+ margin: 0 auto;
65
+ text-align: center;
66
+ font-size: 9px;
67
+ padding: 1.5rem 2rem;
68
+ }
69
+
70
+ section {
71
+ margin: 1rem 0;
72
+ }
73
+
74
+ article {
75
+ margin: 1rem 0;
76
+ }
77
+
78
+ aside {
79
+ padding: 1rem;
80
+ margin: 1rem 0;
81
+ background-color: var(--color-surface);
82
+ border-left: 3px solid var(--color-highlight);
83
+ /*border-radius: 0.25rem;*/
84
+ }
85
+
86
+ figure {
87
+ margin-bottom: 1rem;
88
+ }
89
+
90
+ details {
91
+ border: 1px solid var(--color-border);
92
+ border-radius: 0.25rem;
93
+ padding: 0.5rem;
94
+ margin-bottom: 1rem;
95
+ background-color: var(--color-surface);
96
+ }
97
+
98
+ summary {
99
+ cursor: pointer;
100
+ font-weight: 600;
101
+ padding: 0.5rem;
102
+ margin: -0.5rem;
103
+ border-radius: 0.25rem;
104
+ }
105
+
106
+ summary:hover {
107
+ background-color: var(--color-background);
108
+ }
109
+
110
+ details[open] summary {
111
+ margin-bottom: 0.5rem;
112
+ border-bottom: 1px solid var(--color-border);
113
+ }
114
+
115
+ }
@@ -0,0 +1,18 @@
1
+ /* Links Styles */
2
+
3
+ a {
4
+ color: var(--color-foreground);
5
+ }
6
+
7
+ a:hover {
8
+ /*text-decoration: underline;*/
9
+ }
10
+
11
+ /* Anchor links and scrolling */
12
+ html {
13
+ scroll-behavior: smooth;
14
+ }
15
+
16
+ [id] {
17
+ scroll-margin-top: 2rem;
18
+ }
@@ -0,0 +1,85 @@
1
+ /* Lists Styles */
2
+
3
+ /* Unordered Lists */
4
+ ul {
5
+ margin-top: 0;
6
+ margin-bottom: 1rem;
7
+ }
8
+
9
+ ul li {
10
+ margin-bottom: 0.5rem;
11
+ }
12
+
13
+ ul ul {
14
+ margin-top: 0.5rem;
15
+ margin-bottom: 0;
16
+ }
17
+
18
+ /* Ordered Lists */
19
+ ol {
20
+ margin-top: 0;
21
+ margin-bottom: 1rem;
22
+ }
23
+
24
+ ol li {
25
+ margin-bottom: 0.5rem;
26
+ }
27
+
28
+ ol ol {
29
+ margin-top: 0.5rem;
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ /* Definition Lists */
34
+ dl {
35
+ margin-top: 0;
36
+ margin-bottom: 1rem;
37
+ }
38
+
39
+ dt {
40
+ margin-bottom: 0.25rem;
41
+ }
42
+
43
+ dd {
44
+ margin-bottom: 0.75rem;
45
+ }
46
+
47
+ /* Nested Lists */
48
+ li > ul,
49
+ li > ol {
50
+ margin-bottom: 0;
51
+ }
52
+
53
+ /* List Variations */
54
+ ul.no-bullets {
55
+ list-style-type: none;
56
+ padding-left: 0;
57
+ }
58
+
59
+ ol.roman {
60
+ list-style-type: upper-roman;
61
+ }
62
+
63
+ ol.alpha {
64
+ list-style-type: lower-alpha;
65
+ }
66
+
67
+ /* Description Lists with Grid Layout */
68
+ @media (min-width: 768px) {
69
+ dl.horizontal {
70
+ display: grid;
71
+ grid-template-columns: 30% 70%;
72
+ gap: 0.5rem;
73
+ }
74
+
75
+ dl.horizontal dt {
76
+ grid-column: 1;
77
+ text-align: right;
78
+ margin-bottom: 0;
79
+ }
80
+
81
+ dl.horizontal dd {
82
+ grid-column: 2;
83
+ margin-left: 0;
84
+ }
85
+ }
@@ -0,0 +1,170 @@
1
+ /* Media Styles */
2
+
3
+ /* Basic Images */
4
+ img {
5
+ max-width: 100%;
6
+ height: auto;
7
+ vertical-align: middle;
8
+ border-style: none;
9
+ }
10
+
11
+ /* Figure and Caption */
12
+ figure {
13
+ display: inline-block;
14
+ margin: 0 0 1rem;
15
+ max-width: 100%;
16
+ }
17
+
18
+ figcaption {
19
+ padding: 0.5rem;
20
+ background-color: var(--color-surface);
21
+ text-align: center;
22
+ }
23
+
24
+ /* Responsive Images */
25
+ .responsive-img {
26
+ width: 100%;
27
+ height: auto;
28
+ }
29
+
30
+ /* Image Shapes */
31
+ .rounded-img {
32
+ border-radius: 0.25rem;
33
+ }
34
+
35
+ .circle-img {
36
+ border-radius: 50%;
37
+ }
38
+
39
+ .thumbnail-img {
40
+ padding: 0.25rem;
41
+ background-color: #fff;
42
+ border: 1px solid #dee2e6;
43
+ border-radius: 0.25rem;
44
+ }
45
+
46
+ /* Image Alignment */
47
+ .img-left {
48
+ float: left;
49
+ margin-right: 1rem;
50
+ margin-bottom: 0.5rem;
51
+ }
52
+
53
+ .img-right {
54
+ float: right;
55
+ margin-left: 1rem;
56
+ margin-bottom: 0.5rem;
57
+ }
58
+
59
+ .img-center {
60
+ display: block;
61
+ margin-left: auto;
62
+ margin-right: auto;
63
+ }
64
+
65
+ /* Picture Element */
66
+ picture {
67
+ display: block;
68
+ }
69
+
70
+ /* Audio Player */
71
+ audio {
72
+ width: 100%;
73
+ margin-bottom: 1rem;
74
+ }
75
+
76
+ /* Video Player */
77
+ video {
78
+ max-width: 100%;
79
+ height: auto;
80
+ margin-bottom: 1rem;
81
+ }
82
+
83
+ /* Responsive Video Container */
84
+ .video-container {
85
+ position: relative;
86
+ padding-bottom: 56.25%; /* 16:9 aspect ratio */
87
+ height: 0;
88
+ overflow: hidden;
89
+ margin-bottom: 1rem;
90
+ }
91
+
92
+ .video-container video,
93
+ .video-container iframe {
94
+ position: absolute;
95
+ top: 0;
96
+ left: 0;
97
+ width: 100%;
98
+ height: 100%;
99
+ }
100
+
101
+ /* Iframe Embeds */
102
+ iframe {
103
+ border: 0;
104
+ max-width: 100%;
105
+ }
106
+
107
+ .iframe-container {
108
+ position: relative;
109
+ width: 100%;
110
+ padding-bottom: 56.25%; /* 16:9 aspect ratio */
111
+ height: 0;
112
+ overflow: hidden;
113
+ margin-bottom: 1rem;
114
+ }
115
+
116
+ .iframe-container iframe {
117
+ position: absolute;
118
+ top: 0;
119
+ left: 0;
120
+ width: 100%;
121
+ height: 100%;
122
+ }
123
+
124
+ /* Media Object Pattern */
125
+ .media {
126
+ display: flex;
127
+ align-items: flex-start;
128
+ margin-bottom: 1rem;
129
+ }
130
+
131
+ .media-body {
132
+ flex: 1;
133
+ }
134
+
135
+ /* Gallery Grid */
136
+ .image-gallery {
137
+ display: grid;
138
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
139
+ gap: 1rem;
140
+ }
141
+
142
+ .image-gallery figure {
143
+ margin: 0;
144
+ height: 100%;
145
+ }
146
+
147
+ .image-gallery img {
148
+ width: 100%;
149
+ height: auto;
150
+ object-fit: cover;
151
+ display: block;
152
+ }
153
+
154
+ /* Image Hover Effects */
155
+ .hover-zoom {
156
+ transition: transform 0.3s ease;
157
+ }
158
+
159
+ .hover-zoom:hover {
160
+ transform: scale(1.05);
161
+ }
162
+
163
+ .hover-opacity {
164
+ opacity: 1;
165
+ transition: opacity 0.3s ease;
166
+ }
167
+
168
+ .hover-opacity:hover {
169
+ opacity: 0.8;
170
+ }
@@ -0,0 +1,40 @@
1
+ nav {
2
+ display: flex;
3
+ /*background-color: green;*/
4
+ justify-content: space-between;
5
+ align-items: center;
6
+ }
7
+
8
+ nav ul, nav ol {
9
+ display: flex;
10
+ flex-direction: row;
11
+ flex-wrap: wrap;
12
+ list-style: none;
13
+ align-items: center;
14
+ padding: 0.5rem;
15
+ margin: 0;
16
+ gap: 1.5rem;
17
+ }
18
+
19
+ nav ul li {
20
+ margin: 0;
21
+ padding: 0;
22
+
23
+ & a {
24
+ text-decoration: none;
25
+ color: var(--color-foreground);
26
+ transition: all 0.2s ease;
27
+ padding: 0.25rem 0.5rem;
28
+ /*border-radius: 0.25rem;*/
29
+
30
+ &:hover {
31
+ color: var(--color-foreground);
32
+ background-color: var(--color-accent);
33
+ }
34
+
35
+ &.active {
36
+ color: var(--color-foreground);
37
+ background-color: var(--color-accent);
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,57 @@
1
+ /* Tables Styles */
2
+
3
+ table {
4
+ width: 100%;
5
+ margin-bottom: 1rem;
6
+ border-collapse: collapse;
7
+ border: 1px solid var(--color-border);
8
+ }
9
+
10
+ caption {
11
+ padding: 1rem 0;
12
+ caption-side: top;
13
+ text-align: left;
14
+ }
15
+
16
+ th,
17
+ td {
18
+ padding: 0.75rem;
19
+ vertical-align: top;
20
+ text-align: left;
21
+ border-bottom: 1px solid var(--color-border);
22
+ }
23
+
24
+ thead th {
25
+ vertical-align: bottom;
26
+ background-color: var(--color-surface);
27
+ }
28
+
29
+ tbody + tbody {
30
+ border-top: 1px solid var(--color-border);
31
+ }
32
+
33
+ tbody tr.cursor-pointer:hover {
34
+ background-color: var(--color-accent);
35
+ }
36
+
37
+ tfoot td {
38
+ font-style: italic;
39
+ background-color: var(--color-surface);
40
+ }
41
+
42
+ /* Responsive tables */
43
+ .table-responsive {
44
+ display: block;
45
+ width: 100%;
46
+ overflow-x: auto;
47
+ -webkit-overflow-scrolling: touch;
48
+ }
49
+
50
+ @media (max-width: 767.98px) {
51
+ .table-responsive-md {
52
+ display: block;
53
+ width: 100%;
54
+ overflow-x: auto;
55
+ -webkit-overflow-scrolling: touch;
56
+ }
57
+ }
@@ -0,0 +1,146 @@
1
+ /* Tabs Component */
2
+
3
+ .tabs {
4
+ width: 100%;
5
+ position: relative;
6
+ padding-bottom: 0;
7
+ }
8
+
9
+ .tabs input[type="radio"] {
10
+ display: none;
11
+ }
12
+
13
+ .tab-nav {
14
+ width: 100%;
15
+ border-bottom: 1px solid var(--color-foreground);
16
+ text-align: center;
17
+ }
18
+
19
+ .tab-label {
20
+ display: inline-block;
21
+ padding: 0.75rem 1.5rem;
22
+ cursor: pointer;
23
+ border-bottom: 1px solid var(--color-foreground);
24
+ transition: all 0.3s ease;
25
+ color: var(--color-foreground);
26
+ /*background-color: var(--color-background);*/
27
+ margin-bottom: -1px;
28
+ position: relative;
29
+ }
30
+
31
+ .tab-label:hover {
32
+ background-color: var(--color-surface);
33
+ }
34
+
35
+ .tabs input[type="radio"]:checked + .tab-label {
36
+ font-weight: 600;
37
+ color: var(--color-foreground);
38
+ background-color: var(--color-surface);
39
+ }
40
+
41
+ .tab-content {
42
+ display: none;
43
+ padding: 1.5rem 0;
44
+ animation: fadeIn 0.3s ease;
45
+ }
46
+
47
+ /* Generic tab content display - supports up to 10 tabs */
48
+ .tabs
49
+ input[type="radio"]:nth-of-type(1):checked
50
+ ~ .content
51
+ .tab-content:nth-of-type(1),
52
+ .tabs
53
+ input[type="radio"]:nth-of-type(2):checked
54
+ ~ .content
55
+ .tab-content:nth-of-type(2),
56
+ .tabs
57
+ input[type="radio"]:nth-of-type(3):checked
58
+ ~ .content
59
+ .tab-content:nth-of-type(3),
60
+ .tabs
61
+ input[type="radio"]:nth-of-type(4):checked
62
+ ~ .content
63
+ .tab-content:nth-of-type(4),
64
+ .tabs
65
+ input[type="radio"]:nth-of-type(5):checked
66
+ ~ .content
67
+ .tab-content:nth-of-type(5),
68
+ .tabs
69
+ input[type="radio"]:nth-of-type(6):checked
70
+ ~ .content
71
+ .tab-content:nth-of-type(6),
72
+ .tabs
73
+ input[type="radio"]:nth-of-type(7):checked
74
+ ~ .content
75
+ .tab-content:nth-of-type(7),
76
+ .tabs
77
+ input[type="radio"]:nth-of-type(8):checked
78
+ ~ .content
79
+ .tab-content:nth-of-type(8),
80
+ .tabs
81
+ input[type="radio"]:nth-of-type(9):checked
82
+ ~ .content
83
+ .tab-content:nth-of-type(9),
84
+ .tabs
85
+ input[type="radio"]:nth-of-type(10):checked
86
+ ~ .content
87
+ .tab-content:nth-of-type(10) {
88
+ display: block;
89
+ }
90
+
91
+ /* Vertical tabs content display */
92
+ .tabs-vertical
93
+ input[type="radio"]:nth-of-type(1):checked
94
+ ~ .content
95
+ .tab-content:nth-of-type(1),
96
+ .tabs-vertical
97
+ input[type="radio"]:nth-of-type(2):checked
98
+ ~ .content
99
+ .tab-content:nth-of-type(2),
100
+ .tabs-vertical
101
+ input[type="radio"]:nth-of-type(3):checked
102
+ ~ .content
103
+ .tab-content:nth-of-type(3),
104
+ .tabs-vertical
105
+ input[type="radio"]:nth-of-type(4):checked
106
+ ~ .content
107
+ .tab-content:nth-of-type(4),
108
+ .tabs-vertical
109
+ input[type="radio"]:nth-of-type(5):checked
110
+ ~ .content
111
+ .tab-content:nth-of-type(5) {
112
+ display: block;
113
+ }
114
+
115
+ @keyframes fadeIn {
116
+ from {
117
+ opacity: 0;
118
+ transform: translateY(-10px);
119
+ }
120
+ to {
121
+ opacity: 1;
122
+ transform: translateY(0);
123
+ }
124
+ }
125
+
126
+ /* Vertical tabs variant */
127
+ .tabs-vertical {
128
+ display: flex;
129
+ gap: 2rem;
130
+ }
131
+
132
+ .tabs-vertical .tab-label {
133
+ display: block;
134
+ border-bottom: none;
135
+ border-left: 2px solid transparent;
136
+ margin-bottom: 0.5rem;
137
+ }
138
+
139
+ .tabs-vertical input[type="radio"]:checked + .tab-label {
140
+ border-left-color: var(--color-foreground);
141
+ border-bottom-color: transparent;
142
+ }
143
+
144
+ .tabs-vertical .content {
145
+ flex: 1;
146
+ }