Open Site Review Report
- Targets: defaults, not ie <= 11
- Unsupported threshold: 10%
- Polyfill removable threshold: 5%
- Files scanned: 5
- Findings: 5
- Scan mode: URL crawl (same-origin assets only)
[HIGH] Uses CSS :has() selector
- Type: too-new
- Location: https://dokie.li/media/css/basic.css:164
- Message: Feature may be too new for target browsers (14.7% unsupported).
- Why it matters: :has() can replace JavaScript-driven parent-state logic, but support can lag in older browsers.
- Recommendation: Keep critical functionality resilient if :has() is unavailable, especially for core navigation and forms.
- Can I Use feature: css-has
- Unsupported target share: 14.7%
- Compatibility source: caniuse
- Unsupported targets: and_qq 14.9, and_uc 15.5, kaios 3.0-3.1, kaios 2.5, op_mini all
- MDN: https://developer.mozilla.org/docs/Web/CSS/:has
[HIGH] Uses CSS :has() selector
- Type: too-new
- Location: https://dokie.li/media/css/dokieli.css:755
- Message: Feature may be too new for target browsers (14.7% unsupported).
- Why it matters: :has() can replace JavaScript-driven parent-state logic, but support can lag in older browsers.
- Recommendation: Keep critical functionality resilient if :has() is unavailable, especially for core navigation and forms.
- Can I Use feature: css-has
- Unsupported target share: 14.7%
- Compatibility source: caniuse
- Unsupported targets: and_qq 14.9, and_uc 15.5, kaios 3.0-3.1, kaios 2.5, op_mini all
- MDN: https://developer.mozilla.org/docs/Web/CSS/:has
[HIGH] Uses JavaScript optional chaining
- Type: too-new
- Location: https://dokie.li/scripts/dokieli.js:1
- Message: Feature may be too new for target browsers (14.7% unsupported).
- Why it matters: Optional chaining improves readability and safety, but very old browsers require transpilation.
- Recommendation: If older browsers are in scope, transpile this syntax and serve appropriate bundles.
- Can I Use feature: mdn-javascript_operators_optional_chaining
- Unsupported target share: 14.7%
- Compatibility source: mdn-bcd
- Compatibility note: Can I Use feature 'mdn-javascript_operators_optional_chaining' unavailable; used MDN fallback.
- Unsupported targets: and_qq 14.9, and_uc 15.5, kaios 3.0-3.1, kaios 2.5, op_mini all
- MDN: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Optional_chaining
[HIGH] Uses nullish coalescing operator
- Type: too-new
- Location: https://dokie.li/scripts/dokieli.js:1
- Message: Feature may be too new for target browsers (14.7% unsupported).
- Why it matters: Nullish coalescing can simplify defaults while avoiding falsy-value bugs, but legacy browsers need transpilation.
- Recommendation: Transpile this syntax for older browser support or gate usage to modern bundles only.
- Can I Use feature: mdn-javascript_operators_nullish_coalescing
- Unsupported target share: 14.7%
- Compatibility source: mdn-bcd
- Compatibility note: Can I Use feature 'mdn-javascript_operators_nullish_coalescing' unavailable; used MDN fallback.
- Unsupported targets: and_qq 14.9, and_uc 15.5, kaios 3.0-3.1, kaios 2.5, op_mini all
- MDN: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing
[LOW] Detects legacy jQuery usage
- Type: legacy-modernization-opportunity
- Location: https://dokie.li/scripts/dokieli.js:1
- Message: Pattern has modern native alternatives that may reduce code weight.
- Why it matters: Many DOM tasks historically handled by jQuery are now covered by standard APIs.
- Recommendation: Evaluate whether targeted vanilla replacements can reduce dependency and improve startup performance.
- Can I Use feature: queryselector
- Unsupported target share: 0.0%
- Compatibility source: caniuse
- MDN: https://developer.mozilla.org/docs/Web/API/Document/querySelector
CSS Quality Analysis
Powered by Project Wallace — css-analyzer and css-code-quality.
https://dokie.li/media/css/basic.css
Code Quality Scores
- Performance: 91/100 ✅
- Maintainability: 98/100 ✅
- Complexity: 81/100 ⚠️
Quality Violations
EmptyRules: score impact 1DeclarationDuplications: score impact 3TooMuchComments: score impact 5MaxSelectorsPerRule: score impact 1MoreThanMostCommonDeclarationsPerRule: score impact 1MoreThanMostCommonSelectorComplexity: score impact 1MoreThanMostCommonSelectorSpecificity: score impact 4MaxSelectorComplexity: score impact 5AverageSelectorComplexity: score impact 8IdSelectorRatio: score impact 1
Complexity Metrics
- Source lines of code: 1095
- Stylesheet complexity: 4580
- Total rules: 302
- Total selectors: 482
- Total declarations: 603
!importantdeclarations: 26- Max selector specificity: 2,2,0
Design Tokens
- Colors: 37 unique
- linktext, #000, #ccc, #333, #fdffdd, #c00, #080, transparent, currentcolor, #f3f3f3, #eee, #900, #ffffff, #000000, rgba(0, 0, 0, 0.06), #fff, #bbb, #f00, #00f, #fbfbfb, #fbfffb, #ae1e1e, #0f0, #ff0, #0ff, rgba(255, 0, 0, 0.1), rgba(255, 255, 255, 1), rgba(64, 150, 238, 0.1), #666, #777, #888, #999, #aaa, #ddd, #efe, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.2)
- Font families: 4 unique
- 'Ubuntu', 'Ubuntu Mono', sans-serif, 'Ubuntu', system-ui, sans-serif
- Font sizes: 21 unique
- 10pt, 16pt, 14pt, 12pt, 11pt, 9pt, 1.1em, 18px, 2em, 1.7em, 1.5em, 1.3em, 1em, 1.25em, 0.923em, 2.5em, 3em, 5.5em, 7.5em, 1.4em, 1.2em
- Z-index values: 2 unique
- 2147483647, -1
https://dokie.li/media/css/dokieli.css
Code Quality Scores
- Performance: 66/100 ❌
- Maintainability: 75/100 ⚠️
- Complexity: 72/100 ⚠️
Quality Violations
DeclarationDuplications: score impact 4TooMuchComments: score impact 10TooMuchEmbeddedContent: score impact 20MaxSelectorsPerRule: score impact 15MaxDeclarationsPerRule: score impact 3MoreThanMostCommonSelectorsPerRule: score impact 2MoreThanMostCommonDeclarationsPerRule: score impact 5MoreThanMostCommonSelectorComplexity: score impact 7MoreThanMostCommonSelectorSpecificity: score impact 10MaxSelectorComplexity: score impact 5AverageSelectorComplexity: score impact 5IdSelectorRatio: score impact 1
Complexity Metrics
- Source lines of code: 4242
- Stylesheet complexity: 14673
- Total rules: 1094
- Total selectors: 1588
- Total declarations: 2588
!importantdeclarations: 152- Max selector specificity: 2,2,1
Design Tokens
- Colors: 88 unique
- #fff, #000, #555, #ccc, #777, #080, #efe, currentcolor, transparent, #333, rgba(0,0,0,0.1), #e8f5e9, #4caf50, #2d7a2d, #ddd, #f5f5f5, #f0f4ff, #2563eb, #eee, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.35), rgba(33, 33, 33, 0.2), #ffffff, #000000, #008800, #ffff00, #ff0000, #00ffff, #0099ff, #0000ff, #ff00ff, #d1001c, #ffb900, #900090, #ff7f00, #0088ee, #009999, #9a3a00, #9a6c00, rgba(0, 0, 0, 0.06), rgba(33,33,33,0.2), #cccccc, #eeeeee, #f2f2f2, #f00, #900, #d0ddff, #ffd0d0, #ffffd0, rgba(128,128,128,0.2), rgba(64,64,64,0.9), rgba(198,255,255,0.5), rgba(0,178,255,0.5), rgba(255,255,0,0.5), rgba(255,0,0,0.5), #f0f0f0, #242424, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.3), black, #e3e3e3, white, #212121, #449e48, #c9e7cb, #bdbdbd, #9e9e9e, #dbefdc, #edf7ee, rgba(0,0,0,.2), rgba(0,0,0,.14), rgba(0,0,0,.12), #070, rgba(51, 181, 229, 0.4), #0078a8, #38f, rgba(255,255,255,0.5), rgba(0,0,0,0.65), #f4f4f4, #bbb, rgba(0,0,0,0.4), rgba(255, 255, 255, 0.8), rgba(0,0,0,0.2), #757575, #585858, #999, #666, #222
- Font families: 9 unique
- 'Ubuntu', 'Ubuntu Mono', 'Ubuntu', system-ui, sans-serif, 'Ubuntu Mono', ui-monospace, monospace, monospace, 'Ubuntu', "Helvetica Neue", Helvetica, Arial, sans-serif, Light,sans-serif, 'Lucida Console', Monaco, monospace, Tahoma, Verdana, sans-serif
- Font sizes: 35 unique
- 12pt, 8pt, 9pt, 10pt, 18px, 1em, 14px, 0.85em, 0.9em, 24px, 1.2em, 0.8em, 1.75em, 1.231em, 1.4em, 16px, 2em, 1.25em, 12px, 48px, 96px, 1.17em, .58em, 75%, 7em, 112px, 0.5em, 5em, 350%, 0.975em, 0.6em, 0.75rem, 22px, 13px, 1.08333em
- Z-index values: 14 unique
- 1, 100, 200, 400, 500, 600, 650, 700, 800, 1000, 2000, 2147483646, 2147483647, -1