diff --git a/changelog.md b/changelog.md
index dcaa387..77136e7 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,12 @@
# Changelog
+## 2026-04-08 - 3.69.0 - feat(dees-heading)
+add numeric aliases for horizontal rule heading levels and refine heading spacing styles
+
+- Support level="7" as an alias for "hr" and level="8" as an alias for "hr-small".
+- Update heading and hr variant styles to use design tokens for spacing and colors, with per-level margin tuning.
+- Extend the demo to show both named and numeric hr heading level variants.
+
## 2026-04-08 - 3.68.0 - feat(dees-simple-appdash)
add nested sidebar subviews and preserve submit labels from slotted text
diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts
index 02dd8d7..78d3289 100644
--- a/ts_web/00_commitinfo_data.ts
+++ b/ts_web/00_commitinfo_data.ts
@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-catalog',
- version: '3.68.0',
+ version: '3.69.0',
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
}
diff --git a/ts_web/elements/00group-layout/dees-heading/dees-heading.demo.ts b/ts_web/elements/00group-layout/dees-heading/dees-heading.demo.ts
index 9362097..df554e4 100644
--- a/ts_web/elements/00group-layout/dees-heading/dees-heading.demo.ts
+++ b/ts_web/elements/00group-layout/dees-heading/dees-heading.demo.ts
@@ -8,7 +8,9 @@ export function demoFunc() {
This is a H4 heading
This is a H5 heading
This is a H6 heading
- This is an hr heading
- This is an hr small heading
+ This is an hr heading (level="hr")
+ This is an hr heading (level="7")
+ This is an hr-small heading (level="hr-small")
+ This is an hr-small heading (level="8")
`;
}
\ No newline at end of file
diff --git a/ts_web/elements/00group-layout/dees-heading/dees-heading.ts b/ts_web/elements/00group-layout/dees-heading/dees-heading.ts
index 137d40f..445be3b 100644
--- a/ts_web/elements/00group-layout/dees-heading/dees-heading.ts
+++ b/ts_web/elements/00group-layout/dees-heading/dees-heading.ts
@@ -27,68 +27,91 @@ export class DeesHeading extends DeesElement {
// properties
/**
- * Heading level: 1-6 for h1-h6, or 'hr' for horizontal rule style
+ * Heading level:
+ * '1'-'6' →
..
+ * '7'|'hr' → horizontal-rule style heading
+ * '8'|'hr-small' → small horizontal-rule style heading
*/
@property({ type: String, reflect: true })
- accessor level: '1' | '2' | '3' | '4' | '5' | '6' | 'hr' | 'hr-small' = '1';
+ accessor level: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | 'hr' | 'hr-small' = '1';
// STATIC STYLES
public static styles: CSSResult[] = [
themeDefaultStyles,
cssManager.defaultStyles,
css`
- /* TODO: Migrate hardcoded values to --dees-* CSS variables */
+ :host {
+ display: block;
+ }
+
/* Heading styles */
h1, h2, h3, h4, h5, h6 {
- margin: 16px 0 8px;
font-weight: 600;
- color: ${cssManager.bdTheme('#000', '#fff')};
+ color: var(--dees-color-text-primary);
}
- h1 { font-size: 32px; font-family: ${cssCalSansFontFamily}; letter-spacing: 0.025em;}
- h2 { font-size: 28px; }
- h3 { font-size: 24px; }
- h4 { font-size: 20px; }
- h5 { font-size: 16px; }
- h6 { font-size: 14px; }
+
+ /* Per-level typography + spacing.
+ * Margin scales with importance: h1 gets the most breathing room,
+ * h6 the least. Top margin > bottom margin so headings group with
+ * the content that follows them. */
+ h1 {
+ font-size: 32px;
+ font-family: ${cssCalSansFontFamily};
+ letter-spacing: 0.025em;
+ margin: var(--dees-spacing-2xl) 0 var(--dees-spacing-lg);
+ }
+ h2 {
+ font-size: 28px;
+ margin: var(--dees-spacing-xl) 0 var(--dees-spacing-md);
+ }
+ h3 {
+ font-size: 24px;
+ margin: var(--dees-spacing-xl) 0 var(--dees-spacing-md);
+ }
+ h4 {
+ font-size: 20px;
+ margin: var(--dees-spacing-lg) 0 var(--dees-spacing-sm);
+ }
+ h5 {
+ font-size: 16px;
+ margin: var(--dees-spacing-md) 0 var(--dees-spacing-sm);
+ }
+ h6 {
+ font-size: 14px;
+ margin: var(--dees-spacing-md) 0 var(--dees-spacing-xs);
+ }
+
/* Horizontal rule style heading */
.heading-hr {
display: flex;
align-items: center;
text-align: center;
- margin: 16px 0;
- color: ${cssManager.bdTheme('#999', '#555')};
+ margin: var(--dees-spacing-lg) 0;
+ color: var(--dees-color-text-muted);
}
/* Fade lines toward and away from text for hr style */
.heading-hr::before {
content: '';
flex: 1;
height: 1px;
- /* fade in toward center */
- background: ${cssManager.bdTheme(
- 'linear-gradient(to right, transparent, #ccc)',
- 'linear-gradient(to right, transparent, #333)'
- )};
- margin: 0 8px;
+ background: linear-gradient(to right, transparent, var(--dees-color-border-strong));
+ margin: 0 var(--dees-spacing-sm);
}
.heading-hr::after {
content: '';
flex: 1;
height: 1px;
- /* fade out away from center */
- background: ${cssManager.bdTheme(
- 'linear-gradient(to right, #ccc, transparent)',
- 'linear-gradient(to right, #333, transparent)'
- )};
- margin: 0 8px;
+ background: linear-gradient(to right, var(--dees-color-border-strong), transparent);
+ margin: 0 var(--dees-spacing-sm);
}
/* Small hr variant with reduced margins */
.heading-hr.heading-hr-small {
- margin: 8px 0;
+ margin: var(--dees-spacing-sm) 0;
font-size: 12px;
}
.heading-hr.heading-hr-small::before,
.heading-hr.heading-hr-small::after {
- margin: 0 8px;
+ margin: 0 var(--dees-spacing-sm);
}
`,
];
@@ -109,8 +132,10 @@ export class DeesHeading extends DeesElement {
return html`
`;
case '6':
return html`
`;
+ case '7':
case 'hr':
return html`
`;
+ case '8':
case 'hr-small':
return html`
`;
default: