@@ -5,9 +5,10 @@ import {createGlobalStyle} from 'styled-components';
55const logStyleChange = ( component : string , property : string , value : any ) => {
66 const timestamp = new Date ( ) . toISOString ( ) ;
77 console . log ( `[${ timestamp } ] GlobalStyles: ${ component } - ${ property } :` , value ) ;
8+
89} ;
910
10- const GlobalStyles = createGlobalStyle < { theme : DefaultTheme ; } > `
11+ export const GlobalStyles = createGlobalStyle < { theme : DefaultTheme ; } > `
1112 /* Improved scrollbar styling */
1213 ::-webkit-scrollbar {
1314 width: 10px;
@@ -110,12 +111,180 @@ const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`
110111 padding: 0;
111112 box-sizing: border-box;
112113 }
114+ /* Enhanced list styling */
115+ ul, ol {
116+ padding-left: 2em;
117+ margin: 1em 0;
118+ list-style-position: outside;
119+ color: ${ ( { theme} ) => theme . colors . text . primary } ;
120+ font-size: 0.95em;
121+ }
122+ /* Improve nested list spacing and styling */
123+ ul ul, ul ol, ol ul, ol ol {
124+ margin: 0.75em 0 0.75em 0.5em;
125+ padding-left: 1.5em;
126+ border-left: 1px solid ${ ( { theme} ) => theme . colors . border + '40' } ;
127+ position: relative;
128+ font-size: 0.95em;
129+ }
130+ /* List item styling */
131+ li {
132+ margin: 0.5em 0;
133+ line-height: 1.6;
134+ position: relative;
135+ padding-left: 0.5em;
136+ transition: all 0.2s ease;
137+ }
138+ /* List item hover effect */
139+ li:hover {
140+ color: ${ ( { theme} ) => theme . colors . primary } ;
141+ transform: translateX(2px);
142+ }
143+ /* Custom bullets for unordered lists */
144+ ul {
145+ list-style: none;
146+ }
147+ ul li::before {
148+ position: absolute;
149+ left: -1.5em;
150+ top: 0.7em;
151+ border-radius: 50%;
152+ transition: all 0.3s ease;
153+ box-shadow: 0 0 2px ${ ( { theme} ) => theme . colors . primary + '40' } ;
154+ color: ${ ( { theme} ) => theme . colors . primary } ;
155+ }
156+ /* Nested unordered list bullets */
157+ ul ul li::before {
158+ width: 5px;
159+ height: 5px;
160+ left: -1.3em;
161+ opacity: 0.9;
162+ box-shadow: none;
163+ }
164+ ul ul ul li::before {
165+ width: 4px;
166+ height: 4px;
167+ left: -1.2em;
168+ opacity: 0.7;
169+ }
170+ /* Ordered list styling */
171+ ol {
172+ counter-reset: item;
173+ list-style: none;
174+ padding-left: 2.5em;
175+ }
176+ ol li {
177+ counter-increment: item;
178+ padding-left: 0.25em;
179+ }
180+ ol li::before {
181+ content: counter(item) ".";
182+ position: absolute;
183+ left: -2.25em;
184+ width: 1.5em;
185+ text-align: right;
186+ color: ${ ( { theme} ) => theme . colors . primary + 'E6' } ;
187+ font-weight: 600;
188+ font-feature-settings: "tnum";
189+ transition: all 0.3s ease;
190+ font-size: 0.9em;
191+ }
192+ /* Nested ordered list counters */
193+ ol ol {
194+ counter-reset: subitem;
195+ border-left: 1px solid ${ ( { theme} ) => theme . colors . border + '40' } ;
196+ margin-left: 0.5em;
197+ padding-left: 2em;
198+ list-style-type: none;
199+ }
200+ ol ol li {
201+ counter-increment: subitem;
202+ position: relative;
203+ padding-left: 0.5em;
204+ list-style-type: none;
205+ &::marker {
206+ display: none;
207+ }
208+ }
209+ ol ol li::before {
210+ content: counter(item) "." counter(subitem);
211+ position: absolute;
212+ left: -2.75em;
213+ width: 2.75em;
214+ text-align: right;
215+ color: ${ ( { theme} ) => theme . colors . secondary + 'CC' } ;
216+ font-size: 0.85em;
217+ opacity: 0.9;
218+ top: 0;
219+ display: inline-block;
220+ font-variant-numeric: tabular-nums;
221+ font-feature-settings: "tnum";
222+ }
223+ /* Third level ordered lists */
224+ ol ol ol {
225+ counter-reset: subsubitem;
226+ padding-left: 2.5em;
227+ list-style-type: none;
228+ &::marker {
229+ display: none;
230+ }
231+ }
232+ ol ol ol li {
233+ counter-increment: subsubitem;
234+ padding-left: 0.5em;
235+ list-style-type: none;
236+ &::marker {
237+ display: none;
238+ }
239+ }
240+ ol ol ol li::before {
241+ content: counter(item) "." counter(subitem) "." counter(subsubitem);
242+ width: 4em;
243+ left: -4em;
244+ top: 0;
245+ display: inline-block;
246+ font-variant-numeric: tabular-nums;
247+ font-feature-settings: "tnum";
248+ white-space: nowrap;
249+ }
250+ /* List spacing in content areas */
251+ .message-content ul,
252+ .message-content ol {
253+ margin: 1em 0;
254+ padding: 1em 1.25em 1em 2.5em;
255+ background: ${ ( { theme} ) => theme . colors . background + '08' } ;
256+ border-radius: 8px;
257+ border: 1px solid ${ ( { theme} ) => theme . colors . border + '20' } ;
258+ box-shadow: 0 2px 4px ${ ( { theme} ) => theme . colors . border + '10' } ;
259+ }
260+ /* List item hover effects */
261+ ul li:hover::before {
262+ transform: scale(1.3);
263+ background-color: ${ ( { theme} ) => theme . colors . primary } ;
264+ box-shadow: 0 0 4px ${ ( { theme} ) => theme . colors . primary + '40' } ;
265+ }
266+ /* Improve nested list visual hierarchy */
267+ ul ul, ol ol {
268+ opacity: 1;
269+ background: ${ ( { theme} ) => theme . colors . background + '05' } ;
270+ }
271+ ul ul ul, ol ol ol {
272+ opacity: 1;
273+ background: ${ ( { theme} ) => theme . colors . background + '03' } ;
274+ }
275+ /* Improve list item text selection */
276+ li::selection {
277+ background-color: ${ ( { theme} ) => theme . colors . primary + '40' } ;
278+ }
279+ /* List animations on theme change */
280+ ul li::before,
281+ ol li::before {
282+ transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
283+ }
113284
114285 /* Theme variables */
115286
116287 :root {
117- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
118- --transition-duration: 0.3s;
119288 }
120289
121290 /* Improve focus styles globally */
@@ -170,14 +339,107 @@ const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`
170339 font-weight: var(--font-weight-extrabold);
171340 letter-spacing: var(--letter-spacing-tight);
172341 line-height: var(--line-height-tight);
173- margin-bottom: 0.5em ;
342+ margin: 2em 0 1em ;
174343 text-transform: uppercase;
175- background: linear-gradient(135deg, ${ ( { theme} ) => theme . colors . primary } , ${ ( { theme} ) => theme . colors . secondary } );
344+ background: ${ ( { theme} ) => `
345+ linear-gradient(135deg,
346+ ${ theme . colors . primary } ,
347+ ${ theme . colors . secondary }
348+ )
349+ ` } ;
176350 -webkit-background-clip: text;
177351 -webkit-text-fill-color: transparent;
178352 text-shadow: 0 2px 4px rgba(0,0,0,0.1);
179353 position: relative;
180354 z-index: 1;
355+ display: inline-block;
356+
357+ /* Add decorative underline */
358+ &::after {
359+ content: '';
360+ position: absolute;
361+ bottom: -0.35em;
362+ left: 0;
363+ width: 100%;
364+ height: 0.12em;
365+ background: ${ ( { theme} ) => `
366+ linear-gradient(90deg,
367+ ${ theme . colors . primary } 40,
368+ ${ theme . colors . secondary } 40
369+ )
370+ ` } ;
371+ border-radius: 4px;
372+ transition: all 0.3s ease;
373+ transform: scaleX(0.3);
374+ transform-origin: left;
375+ }
376+
377+ &:hover::after {
378+ transform: scaleX(1);
379+ background: ${ ( { theme} ) => `
380+ linear-gradient(90deg,
381+ ${ theme . colors . primary } ,
382+ ${ theme . colors . secondary }
383+ )
384+ ` } ;
385+ }
386+ }
387+ /* Individual heading sizes */
388+ h1 {
389+ font-size: var(--font-size-2xl);
390+ margin-top: 1em;
391+ padding-bottom: 0.5em;
392+ }
393+ h2 {
394+ font-size: var(--font-size-xl);
395+ padding-bottom: 0.4em;
396+ }
397+ h3 {
398+ font-size: var(--font-size-lg);
399+ padding-bottom: 0.3em;
400+ }
401+ h4 {
402+ font-size: var(--font-size-md);
403+ font-weight: var(--font-weight-bold);
404+ padding-bottom: 0.2em;
405+ text-transform: none;
406+ }
407+ h5 {
408+ font-size: var(--font-size-sm);
409+ font-weight: var(--font-weight-semibold);
410+ text-transform: none;
411+ }
412+ h6 {
413+ font-size: var(--font-size-xs);
414+ font-weight: var(--font-weight-medium);
415+ letter-spacing: var(--letter-spacing-wide);
416+ text-transform: none;
417+ }
418+ /* Add hover effect for headings */
419+ h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover {
420+ transform: translateX(4px);
421+ transition: transform 0.3s ease;
422+ }
423+
424+ /* Improve heading accessibility */
425+ h1:focus-visible,
426+ h2:focus-visible,
427+ h3:focus-visible,
428+ h4:focus-visible,
429+ h5:focus-visible,
430+ h6:focus-visible {
431+ outline: none;
432+ box-shadow: 0 0 0 3px ${ ( { theme} ) => theme . colors . primary } 40;
433+ border-radius: 4px;
434+ }
435+ /* Add spacing after headings when followed by text */
436+ h1 + p,
437+ h2 + p,
438+ h3 + p,
439+ h4 + p,
440+ h5 + p,
441+ h6 + p {
442+ margin-top: 1em;
181443 }
182444 /* Code styles */
183445 code, pre {
@@ -341,5 +603,4 @@ const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`
341603 transform: translateY(0);
342604 box-shadow: ${ ( { theme} ) => theme . shadows . medium } ;
343605 }
344- ` ;
345- export { GlobalStyles } ;
606+ ` ;
0 commit comments