@tensor_1/tokens 2.8.0 → 2.9.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.
@@ -1744,3 +1744,47 @@
1744
1744
  .uix-stat-line__item { display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--uix-border); }
1745
1745
  }
1746
1746
  }
1747
+ /* uix link patterns — the quiet link, for anchors whose CONTAINER is the affordance.
1748
+ *
1749
+ * The base layer styles anchors as in-text content links: --uix-link colour, and
1750
+ * classless [href] anchors carry a persistent underline (WCAG 1.4.1 / link-in-text-block —
1751
+ * a link sitting inside a run of same-coloured prose must not be distinguished by colour
1752
+ * alone). That contract is right for prose and wrong for composition slots where the
1753
+ * surrounding row/card already communicates interactivity: framework <Link>s passed into
1754
+ * kit title slots and table cells rendered brand-blue + bold + underlined — unreadable
1755
+ * noise at list density (TENSOR INTRA-04, operator-rejected).
1756
+ *
1757
+ * A quiet link inherits the surrounding text colour and shows its underline on
1758
+ * hover/focus. 1.4.1 is not in play: the link is the whole text of its block (a title,
1759
+ * a cell), not a link inside body copy. NEVER quiet a link inside prose — in-text links
1760
+ * keep the base blue + underline.
1761
+ *
1762
+ * Two forms:
1763
+ * • `.uix-link--quiet` — the opt-in utility, for block links outside the scoped slots
1764
+ * (whole-card links, event rows composed by hand, app-specific list patterns).
1765
+ * • quiet BY DEFAULT below — the editorial-home title slots and table data cells,
1766
+ * where every anchor is a block-level navigation target. `.uix-table td` keeps
1767
+ * `:not([class])` so class-bearing anchors in cells (`.uix-btn--link`, pills)
1768
+ * stay styled.
1769
+ * Depends only on --uix-* tokens. */
1770
+ @layer uix.components {
1771
+ .uix-link--quiet,
1772
+ .uix-content-list__title a,
1773
+ .uix-news-lead__title a,
1774
+ .uix-rundown__item-title a,
1775
+ .uix-event-row__title a,
1776
+ .uix-table td a:not([class]) { color: inherit; text-decoration: none; }
1777
+
1778
+ .uix-link--quiet:hover,
1779
+ .uix-link--quiet:focus-visible,
1780
+ .uix-content-list__title a:hover,
1781
+ .uix-content-list__title a:focus-visible,
1782
+ .uix-news-lead__title a:hover,
1783
+ .uix-news-lead__title a:focus-visible,
1784
+ .uix-rundown__item-title a:hover,
1785
+ .uix-rundown__item-title a:focus-visible,
1786
+ .uix-event-row__title a:hover,
1787
+ .uix-event-row__title a:focus-visible,
1788
+ .uix-table td a:not([class]):hover,
1789
+ .uix-table td a:not([class]):focus-visible { text-decoration: underline; }
1790
+ }
@@ -2085,3 +2085,47 @@
2085
2085
  .uix-stat-line__item { display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--uix-border); }
2086
2086
  }
2087
2087
  }
2088
+ /* uix link patterns — the quiet link, for anchors whose CONTAINER is the affordance.
2089
+ *
2090
+ * The base layer styles anchors as in-text content links: --uix-link colour, and
2091
+ * classless [href] anchors carry a persistent underline (WCAG 1.4.1 / link-in-text-block —
2092
+ * a link sitting inside a run of same-coloured prose must not be distinguished by colour
2093
+ * alone). That contract is right for prose and wrong for composition slots where the
2094
+ * surrounding row/card already communicates interactivity: framework <Link>s passed into
2095
+ * kit title slots and table cells rendered brand-blue + bold + underlined — unreadable
2096
+ * noise at list density (TENSOR INTRA-04, operator-rejected).
2097
+ *
2098
+ * A quiet link inherits the surrounding text colour and shows its underline on
2099
+ * hover/focus. 1.4.1 is not in play: the link is the whole text of its block (a title,
2100
+ * a cell), not a link inside body copy. NEVER quiet a link inside prose — in-text links
2101
+ * keep the base blue + underline.
2102
+ *
2103
+ * Two forms:
2104
+ * • `.uix-link--quiet` — the opt-in utility, for block links outside the scoped slots
2105
+ * (whole-card links, event rows composed by hand, app-specific list patterns).
2106
+ * • quiet BY DEFAULT below — the editorial-home title slots and table data cells,
2107
+ * where every anchor is a block-level navigation target. `.uix-table td` keeps
2108
+ * `:not([class])` so class-bearing anchors in cells (`.uix-btn--link`, pills)
2109
+ * stay styled.
2110
+ * Depends only on --uix-* tokens. */
2111
+ @layer uix.components {
2112
+ .uix-link--quiet,
2113
+ .uix-content-list__title a,
2114
+ .uix-news-lead__title a,
2115
+ .uix-rundown__item-title a,
2116
+ .uix-event-row__title a,
2117
+ .uix-table td a:not([class]) { color: inherit; text-decoration: none; }
2118
+
2119
+ .uix-link--quiet:hover,
2120
+ .uix-link--quiet:focus-visible,
2121
+ .uix-content-list__title a:hover,
2122
+ .uix-content-list__title a:focus-visible,
2123
+ .uix-news-lead__title a:hover,
2124
+ .uix-news-lead__title a:focus-visible,
2125
+ .uix-rundown__item-title a:hover,
2126
+ .uix-rundown__item-title a:focus-visible,
2127
+ .uix-event-row__title a:hover,
2128
+ .uix-event-row__title a:focus-visible,
2129
+ .uix-table td a:not([class]):hover,
2130
+ .uix-table td a:not([class]):focus-visible { text-decoration: underline; }
2131
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tensor_1/tokens",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "UIx v2 design tokens — the --uix-* contract for house products (Tensor, POSx, SHOPx). One DTCG source -> CSS variables, Tailwind theme, and typed TS constants.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",