@schlenkr/quassel 0.5.6 → 0.6.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.
package/README.md CHANGED
@@ -49,7 +49,7 @@ variables too.
49
49
  actions are announced once, with the host in control of the wording.
50
50
  - Complete English and German UI labels through `englishTexts` / `germanTexts`; `texts` can override any label (English by default).
51
51
  - Grouped steps show their error count even while collapsed.
52
- - Text size follows the host: no overrides needed to fit in (see below).
52
+ - One text size per host, a fixed small size and shared Markdown typography (see below).
53
53
 
54
54
  ## Install
55
55
 
@@ -93,28 +93,26 @@ Any backend that emits the `@schlenkr/quassel/events` stream works with the same
93
93
 
94
94
  ## Text size
95
95
 
96
- quassel starts at 13px with a line height of 1.5, a 10px message gap and a 3px dense
97
- step gap. Tool rows and timestamps use 88% of the text size. Expanded tool groups have a
98
- 1px gap between rows; tool rows have 1px of vertical padding on each side.
96
+ quassel defaults to 13px. Set `--qsl-font-size` on a wrapper, or `1em` to inherit the host's
97
+ font size. Messages, the composer, action cards and text buttons use that base with line height
98
+ 1.5. All small UI text, including tools and timestamps, uses 85% with line height 1.4.
99
+ `--qsl-font` and `--qsl-mono` select the font families. There are no other typography inputs.
100
+ Sizes derive from an absolute base, so nested small elements never compound.
99
101
 
100
- Every size derives from one base, so nested elements never compound. Set `--qsl-font-size`
101
- on a wrapper, or `appearance.fontSize`, to change it. Use `1em` to follow the host's font size.
102
- `appearance` also offers `toolFontScale`, `toolGroupGap` and `toolRowPadding`.
103
-
104
- User message backgrounds fill the available row by default while text keeps its width and
105
- alignment. `bubbleOptions={{ userBackgroundFullWidth: false }}` restores a fitted background.
106
- Timestamps sit beside messages by default; their size follows the tool text unless overridden:
102
+ `Markdown` uses the same typography in answers and standalone documents:
107
103
 
108
104
  ```tsx
109
- <ChatMessages
110
- messages={messages}
111
- showTimestamps
112
- timestampOptions={{ position: "above", fontScale: 0.88 }}
113
- />
105
+ <Markdown text={documentText} />
114
106
  ```
115
107
 
116
- `--qsl-text-trace`, `--qsl-timestamp-font-size` and the other `--qsl-text-*` variables override
117
- individual sizes. The [guide](https://github.com/SchlenkR/quassel/blob/main/docs/guide.md#text-size) lists the full API.
108
+ User message backgrounds fill the available row by default while text keeps its width and
109
+ alignment. `bubbleOptions={{ userBackgroundFullWidth: false }}` restores a fitted background.
110
+ Timestamps sit beside messages by default; `timestampOptions={{ position: "above" }}` moves
111
+ them above. Message gaps and tool row spacing remain configurable through `appearance`.
112
+
113
+ For 0.6, replace separate size and line-height overrides with `--qsl-font-size` and remove
114
+ all typography fields from `appearance` and timestamp options. The [migration guide](https://github.com/SchlenkR/quassel/blob/main/docs/guide.md#migration-to-06)
115
+ lists the removed variables and options.
118
116
 
119
117
  ## Development
120
118
 
package/chat.css CHANGED
@@ -8,8 +8,6 @@
8
8
  --qsl-spacing: 0.235rem;
9
9
  --qsl-font-weight-medium: 500;
10
10
  --qsl-font-weight-semibold: 600;
11
- --qsl-leading-normal: 1.5;
12
- --qsl-leading-relaxed: 1.625;
13
11
  --qsl-animate-spin: qsl-spin 1s linear infinite;
14
12
  --qsl-default-transition-duration: 150ms;
15
13
  --qsl-default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -97,15 +95,6 @@
97
95
  .qsl\:mx-auto {
98
96
  margin-inline: auto;
99
97
  }
100
- .qsl\:my-1 {
101
- margin-block: var(--qsl-spacing);
102
- }
103
- .qsl\:my-2 {
104
- margin-block: calc(var(--qsl-spacing) * 2);
105
- }
106
- .qsl\:my-3 {
107
- margin-block: calc(var(--qsl-spacing) * 3);
108
- }
109
98
  .qsl\:mt-0 {
110
99
  margin-top: 0px;
111
100
  }
@@ -121,9 +110,6 @@
121
110
  .qsl\:mt-2\.5 {
122
111
  margin-top: calc(var(--qsl-spacing) * 2.5);
123
112
  }
124
- .qsl\:mt-3 {
125
- margin-top: calc(var(--qsl-spacing) * 3);
126
- }
127
113
  .qsl\:mt-4 {
128
114
  margin-top: calc(var(--qsl-spacing) * 4);
129
115
  }
@@ -136,9 +122,6 @@
136
122
  .qsl\:mb-0\.5 {
137
123
  margin-bottom: calc(var(--qsl-spacing) * 0.5);
138
124
  }
139
- .qsl\:mb-1 {
140
- margin-bottom: var(--qsl-spacing);
141
- }
142
125
  .qsl\:mb-1\.5 {
143
126
  margin-bottom: calc(var(--qsl-spacing) * 1.5);
144
127
  }
@@ -265,9 +248,6 @@
265
248
  .qsl\:w-max {
266
249
  width: max-content;
267
250
  }
268
- .qsl\:max-w-\[44ch\] {
269
- max-width: 44ch;
270
- }
271
251
  .qsl\:max-w-\[86\%\] {
272
252
  max-width: 86%;
273
253
  }
@@ -354,12 +334,6 @@
354
334
  .qsl\:\[scrollbar-width\:thin\] {
355
335
  scrollbar-width: thin;
356
336
  }
357
- .qsl\:list-decimal {
358
- list-style-type: decimal;
359
- }
360
- .qsl\:list-disc {
361
- list-style-type: disc;
362
- }
363
337
  .qsl\:flex-col {
364
338
  flex-direction: column;
365
339
  }
@@ -426,11 +400,6 @@
426
400
  .qsl\:gap-\[var\(--qsl-tool-group-gap\,1px\)\] {
427
401
  gap: var(--qsl-tool-group-gap,1px);
428
402
  }
429
- :where(.qsl\:space-y-0 > :not(:last-child)) {
430
- --tw-space-y-reverse: 0;
431
- margin-block-start: 0;
432
- margin-block-end: 0;
433
- }
434
403
  .qsl\:gap-x-1\.5 {
435
404
  column-gap: calc(var(--qsl-spacing) * 1.5);
436
405
  }
@@ -488,9 +457,6 @@
488
457
  .qsl\:rounded-panel {
489
458
  border-radius: var(--qsl-radius-panel);
490
459
  }
491
- .qsl\:rounded-sm {
492
- border-radius: var(--qsl-radius-sm, calc(var(--qsl-radius) * 0.6));
493
- }
494
460
  .qsl\:border {
495
461
  border-style: var(--tw-border-style);
496
462
  border-width: 1px;
@@ -617,9 +583,6 @@
617
583
  .qsl\:p-4 {
618
584
  padding: calc(var(--qsl-spacing) * 4);
619
585
  }
620
- .qsl\:px-1 {
621
- padding-inline: var(--qsl-spacing);
622
- }
623
586
  .qsl\:px-2 {
624
587
  padding-inline: calc(var(--qsl-spacing) * 2);
625
588
  }
@@ -650,9 +613,6 @@
650
613
  .qsl\:py-0\.5 {
651
614
  padding-block: calc(var(--qsl-spacing) * 0.5);
652
615
  }
653
- .qsl\:py-1 {
654
- padding-block: var(--qsl-spacing);
655
- }
656
616
  .qsl\:py-1\.5 {
657
617
  padding-block: calc(var(--qsl-spacing) * 1.5);
658
618
  }
@@ -716,79 +676,19 @@
716
676
  .qsl\:text-left {
717
677
  text-align: left;
718
678
  }
719
- .qsl\:align-top {
720
- vertical-align: top;
721
- }
722
679
  .qsl\:font-mono {
723
680
  font-family: var(--qsl-mono);
724
681
  }
725
- .qsl\:text-base {
726
- font-size: var(--qsl-text-base, var(--qsl-base));
727
- line-height: var(--tw-leading, var(--qsl-text-base--line-height, 1.5));
728
- }
729
- .qsl\:text-sm {
730
- font-size: var(--qsl-text-sm, calc(var(--qsl-base) * 0.9));
731
- line-height: var(--tw-leading, var(--qsl-text-sm--line-height, 1.45));
732
- }
733
- .qsl\:text-xs {
734
- font-size: var(--qsl-text-xs, calc(var(--qsl-base) * 0.8));
735
- line-height: var(--tw-leading, var(--qsl-text-xs--line-height, 1.45));
736
- }
737
- .qsl\:text-\[length\:1\.1em\] {
738
- font-size: 1.1em;
739
- }
740
- .qsl\:text-\[length\:1\.2em\] {
741
- font-size: 1.2em;
742
- }
743
- .qsl\:text-\[length\:1em\] {
744
- font-size: 1em;
745
- }
746
- .qsl\:text-chat {
747
- font-size: var(--qsl-chat-font-size, var(--qsl-base));
748
- }
749
- .qsl\:text-label {
750
- font-size: var(--qsl-text-label, calc(var(--qsl-base) * 0.85));
751
- }
752
- .qsl\:text-meta {
753
- font-size: var(--qsl-text-meta, calc(var(--qsl-base) * 0.8));
754
- }
755
- .qsl\:text-timestamp {
756
- font-size: var(--qsl-timestamp-font-size, var(--qsl-text-trace, calc(var(--qsl-base) * var(--qsl-tool-font-scale, 0.88))));
757
- }
758
- .qsl\:text-trace {
759
- font-size: var(--qsl-text-trace, calc(var(--qsl-base) * var(--qsl-tool-font-scale, 0.88)));
760
- }
761
- .qsl\:leading-\[1\.3\] {
762
- --tw-leading: 1.3;
763
- line-height: 1.3;
764
- }
765
- .qsl\:leading-\[1\.6\] {
766
- --tw-leading: 1.6;
767
- line-height: 1.6;
768
- }
769
- .qsl\:leading-\[1\.45\] {
770
- --tw-leading: 1.45;
771
- line-height: 1.45;
772
- }
773
- .qsl\:leading-\[1\.375\] {
774
- --tw-leading: 1.375;
775
- line-height: 1.375;
776
- }
777
- .qsl\:leading-\[1\.625\] {
778
- --tw-leading: 1.625;
779
- line-height: 1.625;
780
- }
781
- .qsl\:leading-\[var\(--qsl-chat-line-height\,1\.65\)\] {
782
- --tw-leading: var(--qsl-chat-line-height,1.65);
783
- line-height: var(--qsl-chat-line-height,1.65);
784
- }
785
- .qsl\:leading-normal {
786
- --tw-leading: var(--qsl-leading-normal);
787
- line-height: var(--qsl-leading-normal);
682
+ .qsl\:text-body {
683
+ font-size: var(--qsl-base);
684
+ line-height: 1.5;
685
+ &:where([data-quassel]:not([data-quassel] *)) {
686
+ font-size: var(--qsl-font-size, 13px);
687
+ }
788
688
  }
789
- .qsl\:leading-relaxed {
790
- --tw-leading: var(--qsl-leading-relaxed);
791
- line-height: var(--qsl-leading-relaxed);
689
+ .qsl\:text-small {
690
+ font-size: calc(var(--qsl-base) * 0.85);
691
+ line-height: 1.4;
792
692
  }
793
693
  .qsl\:font-medium {
794
694
  --tw-font-weight: var(--qsl-font-weight-medium);
@@ -815,9 +715,6 @@
815
715
  .qsl\:text-ellipsis {
816
716
  text-overflow: ellipsis;
817
717
  }
818
- .qsl\:whitespace-normal {
819
- white-space: normal;
820
- }
821
718
  .qsl\:whitespace-nowrap {
822
719
  white-space: nowrap;
823
720
  }
@@ -873,9 +770,6 @@
873
770
  .qsl\:underline {
874
771
  text-decoration-line: underline;
875
772
  }
876
- .qsl\:\[text-underline-offset\:2px\] {
877
- text-underline-offset: 2px;
878
- }
879
773
  .qsl\:underline-offset-4 {
880
774
  text-underline-offset: 4px;
881
775
  }
@@ -1015,18 +909,6 @@
1015
909
  opacity: 100%;
1016
910
  }
1017
911
  }
1018
- .qsl\:marker\:text-muted-foreground ::marker {
1019
- color: var(--qsl-muted-foreground);
1020
- }
1021
- .qsl\:marker\:text-muted-foreground::marker {
1022
- color: var(--qsl-muted-foreground);
1023
- }
1024
- .qsl\:marker\:text-muted-foreground ::-webkit-details-marker {
1025
- color: var(--qsl-muted-foreground);
1026
- }
1027
- .qsl\:marker\:text-muted-foreground::-webkit-details-marker {
1028
- color: var(--qsl-muted-foreground);
1029
- }
1030
912
  .qsl\:placeholder\:text-muted-foreground::placeholder {
1031
913
  color: var(--qsl-muted-foreground);
1032
914
  }
@@ -1189,54 +1071,6 @@
1189
1071
  :where([data-tone="material"]) .qsl\:in-data-\[tone\=material\]\:p-0 {
1190
1072
  padding: 0px;
1191
1073
  }
1192
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:border-white\/35 {
1193
- border-color: var(--qsl-color-white);
1194
- @supports (color: color-mix(in lab, red, red)) {
1195
- border-color: color-mix(in oklab, var(--qsl-color-white) 35%, transparent);
1196
- }
1197
- }
1198
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:border-white\/50 {
1199
- border-color: var(--qsl-color-white);
1200
- @supports (color: color-mix(in lab, red, red)) {
1201
- border-color: color-mix(in oklab, var(--qsl-color-white) 50%, transparent);
1202
- }
1203
- }
1204
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:bg-black\/30 {
1205
- background-color: var(--qsl-color-black);
1206
- @supports (color: color-mix(in lab, red, red)) {
1207
- background-color: color-mix(in oklab, var(--qsl-color-black) 30%, transparent);
1208
- }
1209
- }
1210
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:bg-white\/15 {
1211
- background-color: var(--qsl-color-white);
1212
- @supports (color: color-mix(in lab, red, red)) {
1213
- background-color: color-mix(in oklab, var(--qsl-color-white) 15%, transparent);
1214
- }
1215
- }
1216
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:bg-white\/20 {
1217
- background-color: var(--qsl-color-white);
1218
- @supports (color: color-mix(in lab, red, red)) {
1219
- background-color: color-mix(in oklab, var(--qsl-color-white) 20%, transparent);
1220
- }
1221
- }
1222
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:text-inherit {
1223
- color: inherit;
1224
- }
1225
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:underline {
1226
- text-decoration-line: underline;
1227
- }
1228
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:marker\:text-inherit ::marker {
1229
- color: inherit;
1230
- }
1231
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:marker\:text-inherit::marker {
1232
- color: inherit;
1233
- }
1234
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:marker\:text-inherit ::-webkit-details-marker {
1235
- color: inherit;
1236
- }
1237
- :where([data-tone="on-color"]) .qsl\:in-data-\[tone\=on-color\]\:marker\:text-inherit::-webkit-details-marker {
1238
- color: inherit;
1239
- }
1240
1074
  :where([data-tone="overseer-details"]) .qsl\:in-data-\[tone\=overseer-details\]\:max-h-40 {
1241
1075
  max-height: calc(var(--qsl-spacing) * 40);
1242
1076
  }
@@ -1608,9 +1442,6 @@
1608
1442
  :where([data-tone="material"]) .qsl\:in-data-\[tone\=material\]\:\[\&\>\*\:first-child\]\:mt-0 > :first-child {
1609
1443
  margin-top: 0px;
1610
1444
  }
1611
- .qsl\:\[\&\>\*\:last-child\]\:mb-0 > :last-child {
1612
- margin-bottom: 0px;
1613
- }
1614
1445
  @media (hover:none) {
1615
1446
  .qsl\:\[\@media\(hover\:none\)\]\:pointer-events-auto {
1616
1447
  pointer-events: auto;
@@ -1622,21 +1453,6 @@
1622
1453
  opacity: 100%;
1623
1454
  }
1624
1455
  }
1625
- li + .qsl\:\[li\+\&\]\:mt-1 {
1626
- margin-top: var(--qsl-spacing);
1627
- }
1628
- li > .qsl\:\[li\>\&\]\:my-0 {
1629
- margin-block: 0px;
1630
- }
1631
- p + .qsl\:\[p\+\&\]\:mt-3 {
1632
- margin-top: calc(var(--qsl-spacing) * 3);
1633
- }
1634
- pre > .qsl\:\[pre\>\&\]\:bg-transparent {
1635
- background-color: transparent;
1636
- }
1637
- pre > .qsl\:\[pre\>\&\]\:p-0 {
1638
- padding: 0px;
1639
- }
1640
1456
  }
1641
1457
  @property --tw-animation-delay {
1642
1458
  syntax: "*";
@@ -1727,6 +1543,139 @@
1727
1543
  inherits: true;
1728
1544
  initial-value: 13px;
1729
1545
  }
1546
+ @layer components {
1547
+ [data-quassel-markdown] {
1548
+ overflow-wrap: anywhere;
1549
+ white-space: normal;
1550
+ }
1551
+ [data-quassel-markdown] :where(strong, b) {
1552
+ font-weight: 700;
1553
+ }
1554
+ [data-quassel-markdown] em {
1555
+ font-style: italic;
1556
+ }
1557
+ [data-quassel-markdown] :where(h1, h2, h3, h4, h5, h6) {
1558
+ font-weight: 700;
1559
+ color: inherit;
1560
+ }
1561
+ [data-quassel-markdown] h1 {
1562
+ margin: 1.5em 0 0.5em;
1563
+ font-size: calc(var(--qsl-base) * 1.3);
1564
+ line-height: 1.25;
1565
+ }
1566
+ [data-quassel-markdown] h2 {
1567
+ margin: 1.5em 0 0.45em;
1568
+ font-size: calc(var(--qsl-base) * 1.15);
1569
+ line-height: 1.3;
1570
+ }
1571
+ [data-quassel-markdown] h3 {
1572
+ margin: 1.35em 0 0.4em;
1573
+ font-size: calc(var(--qsl-base) * 1.05);
1574
+ line-height: 1.35;
1575
+ }
1576
+ [data-quassel-markdown] :where(h4, h5, h6) {
1577
+ margin: 1.2em 0 0.3em;
1578
+ font-size: var(--qsl-base);
1579
+ line-height: 1.4;
1580
+ color: var(--qsl-muted-foreground);
1581
+ }
1582
+ [data-quassel-markdown] :where(p, ul, ol, blockquote, [data-quassel-table]) {
1583
+ margin-block: 0.75em;
1584
+ }
1585
+ [data-quassel-markdown] :where(ul, ol) {
1586
+ padding-left: 1.5em;
1587
+ }
1588
+ [data-quassel-markdown] ul {
1589
+ list-style: disc;
1590
+ }
1591
+ [data-quassel-markdown] ol {
1592
+ list-style: decimal;
1593
+ }
1594
+ [data-quassel-markdown] li {
1595
+ margin-block: 0.3em;
1596
+ }
1597
+ [data-quassel-markdown] li :where(ul, ol) {
1598
+ margin-block: 0.25em 0;
1599
+ }
1600
+ [data-quassel-markdown] li > p {
1601
+ margin: 0;
1602
+ }
1603
+ [data-quassel-markdown] code {
1604
+ padding: 0.12em 0.4em;
1605
+ border-radius: 0.38em;
1606
+ background: var(--qsl-inline-code-background, var(--qsl-secondary));
1607
+ @supports (color: color-mix(in lab, red, red)) {
1608
+ background: var(--qsl-inline-code-background, color-mix(in srgb, var(--qsl-secondary) 70%, transparent));
1609
+ }
1610
+ box-shadow: inset 0 0 0 1px var(--qsl-inline-code-edge, transparent);
1611
+ color: var(--qsl-inline-code-foreground, inherit);
1612
+ font-size: 0.9em;
1613
+ }
1614
+ [data-quassel-markdown] pre {
1615
+ margin-block: 0.9em;
1616
+ padding: 0.85em 1.05em;
1617
+ border: 1px solid var(--qsl-code-border, var(--qsl-border));
1618
+ border-radius: 0.7em;
1619
+ background: var(--qsl-code-background, var(--qsl-secondary));
1620
+ font-size: 0.9em;
1621
+ }
1622
+ [data-quassel-markdown] pre code {
1623
+ padding: 0;
1624
+ border-radius: 0;
1625
+ background: transparent;
1626
+ box-shadow: none;
1627
+ color: inherit;
1628
+ font-size: inherit;
1629
+ }
1630
+ [data-quassel-markdown] a {
1631
+ color: var(--qsl-primary);
1632
+ text-decoration: underline;
1633
+ text-decoration-thickness: 1px;
1634
+ text-underline-offset: 3px;
1635
+ }
1636
+ [data-quassel-markdown] a:hover {
1637
+ text-decoration-thickness: 2px;
1638
+ }
1639
+ [data-quassel-markdown] blockquote {
1640
+ padding: 0.25em 1em;
1641
+ border-left: 3px solid var(--qsl-primary);
1642
+ background: var(--qsl-blockquote-background, var(--qsl-primary));
1643
+ @supports (color: color-mix(in lab, red, red)) {
1644
+ background: var(--qsl-blockquote-background, color-mix(in srgb, var(--qsl-primary) 6%, transparent));
1645
+ }
1646
+ color: var(--qsl-muted-foreground);
1647
+ }
1648
+ [data-quassel-markdown] :where(th, td) {
1649
+ max-width: 44ch;
1650
+ padding: 0.5em 0.85em;
1651
+ border: 1px solid var(--qsl-border);
1652
+ text-align: left;
1653
+ vertical-align: top;
1654
+ }
1655
+ [data-quassel-markdown] th {
1656
+ background: var(--qsl-secondary);
1657
+ font-weight: 700;
1658
+ }
1659
+ [data-quassel-markdown] tbody tr:nth-child(even) {
1660
+ background: var(--qsl-secondary);
1661
+ @supports (color: color-mix(in lab, red, red)) {
1662
+ background: color-mix(in srgb, var(--qsl-secondary) 35%, transparent);
1663
+ }
1664
+ }
1665
+ [data-quassel-markdown] hr {
1666
+ margin-block: 1.6em;
1667
+ border-color: var(--qsl-border);
1668
+ }
1669
+ [data-quassel-markdown] > div > :first-child {
1670
+ margin-top: 0;
1671
+ }
1672
+ [data-quassel-markdown] > div > :last-child {
1673
+ margin-bottom: 0;
1674
+ }
1675
+ :where([data-tone="on-color"]) [data-quassel-markdown] :where(a, blockquote, h4, h5, h6) {
1676
+ color: inherit;
1677
+ }
1678
+ }
1730
1679
  @layer theme {
1731
1680
  :where(:root, :host, [data-theme="light"], [data-theme="system"]) {
1732
1681
  --qsl-color-scheme: light;
@@ -1838,14 +1787,17 @@
1838
1787
  font-family: var(--qsl-mono);
1839
1788
  font-feature-settings: normal;
1840
1789
  font-variation-settings: normal;
1841
- font-size: 1em;
1790
+ font-size: 0.9em;
1791
+ line-height: inherit;
1842
1792
  }
1843
- :where([data-quassel], [data-quassel] *):where(small) {
1844
- font-size: var(--qsl-text-small, 80%);
1793
+ :where([data-quassel], [data-quassel] *):where(pre, pre code) {
1794
+ font-size: inherit;
1795
+ }
1796
+ :where([data-quassel], [data-quassel] *):where(small, sub, sup) {
1797
+ font-size: calc(var(--qsl-base) * 0.85);
1798
+ line-height: 1.4;
1845
1799
  }
1846
1800
  :where([data-quassel], [data-quassel] *):where(sub, sup) {
1847
- font-size: 75%;
1848
- line-height: 0;
1849
1801
  position: relative;
1850
1802
  vertical-align: baseline;
1851
1803
  }
@@ -1938,20 +1890,11 @@
1938
1890
  inherits: false;
1939
1891
  initial-value: 0;
1940
1892
  }
1941
- @property --tw-space-y-reverse {
1942
- syntax: "*";
1943
- inherits: false;
1944
- initial-value: 0;
1945
- }
1946
1893
  @property --tw-border-style {
1947
1894
  syntax: "*";
1948
1895
  inherits: false;
1949
1896
  initial-value: solid;
1950
1897
  }
1951
- @property --tw-leading {
1952
- syntax: "*";
1953
- inherits: false;
1954
- }
1955
1898
  @property --tw-font-weight {
1956
1899
  syntax: "*";
1957
1900
  inherits: false;
@@ -2097,9 +2040,7 @@
2097
2040
  --tw-translate-x: 0;
2098
2041
  --tw-translate-y: 0;
2099
2042
  --tw-translate-z: 0;
2100
- --tw-space-y-reverse: 0;
2101
2043
  --tw-border-style: solid;
2102
- --tw-leading: initial;
2103
2044
  --tw-font-weight: initial;
2104
2045
  --tw-tracking: initial;
2105
2046
  --tw-ordinal: initial;