Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
93d77ab
Удаляет пакет `web-features`
vitya-ne Sep 27, 2025
d2ff87d
Добавляет `doka-baseline`
vitya-ne Sep 27, 2025
deb6d36
Корректирует стили
vitya-ne Sep 27, 2025
0a14cfc
Переносит веб-компонет в `src/scripts/web-components`
vitya-ne Oct 4, 2025
1e547a4
Добавляет поддержку состояния загрузки
vitya-ne Oct 4, 2025
935bc89
Корректирует отступы
vitya-ne Oct 4, 2025
7738dc2
Удаляет ссылки из дескрипшина, кооректирует текст
vitya-ne Oct 4, 2025
b8cea1c
Меняет формат исходника
vitya-ne Oct 7, 2025
d590291
Резервирует место
vitya-ne Oct 7, 2025
94c1bf9
Исправляет сборку: Lit пакеты как зависимость платформы
vitya-ne Oct 7, 2025
f2b83fc
Исправляет резервацию места
vitya-ne Oct 8, 2025
26b6bf0
Удаляет web-components из игнора
vitya-ne Oct 8, 2025
766e04c
Добавляет показ имени группы в случае нескольких групп в конфиге
vitya-ne Oct 13, 2025
085d83f
Добавляет ecmaVersion для поддержки class fields
vitya-ne Jan 15, 2026
f7e9e8a
Добавляет показ состояния загрузки
vitya-ne Jan 15, 2026
b3d428c
Показывает ссылки в одну строку
vitya-ne Jan 16, 2026
b545e8f
Готовит к мержу main
vitya-ne Sep 1, 2026
049a374
Merge branch 'main' into new-baseline
vitya-ne Sep 1, 2026
5745d04
Добавляет пакеты Lit
vitya-ne Sep 1, 2026
e56913f
Обновляет сбор данных
vitya-ne Sep 1, 2026
9f16252
Корректирует шаблон
vitya-ne Sep 4, 2026
31ddd51
Обновляет виджет
vitya-ne Sep 4, 2026
fcefac9
Корректирует шаблон ещё раз
vitya-ne Sep 4, 2026
b38d2e3
Поднимает версию пакета web-features
vitya-ne Sep 4, 2026
aa1fda1
Указывает полную версию
vitya-ne Sep 4, 2026
50aaeb2
Исправляет ошибку линта
vitya-ne Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .eleventy.js
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,6 @@ module.exports = function (config) {
return orderedArticleIndexes
})

config.addCollection('webFeatures', async () => {
const { features } = await import('web-features')
return features
})

config.setLibrary('md', initMarkdownLibrary())

config.addNunjucksShortcode('readingTime', (text) => {
Expand Down
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ src/a11y
src/pages
src/people
src/specials
src/scripts/web-components/*.build.js
10 changes: 1 addition & 9 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,7 @@
"stylelint": "^16.1.0",
"stylelint-config-standard": "^36.0.0",
"terser": "^5.26.0",
"transliteration": "^2.3.5",
"web-features": "^2.40.2"
"transliteration": "^2.3.5"
},
"dependencies": {
"@11ty/eleventy-plugin-vite": "^4.0.0",
Expand Down
36 changes: 9 additions & 27 deletions src/includes/blocks/baseline.njk
Original file line number Diff line number Diff line change
@@ -1,27 +1,9 @@
<div class="wdi-browser-compat">
<span class="wdi-browser-compat__label">Поддержка в браузерах:</span>
<ul class="wdi-browser-compat__items">
{% for browser in baseline.keys %}
<li class="wdi-browser-compat__item">
<span class="wdi-browser-compat__icon" data-browser="{{ browser }}">
{% if baseline.supported[browser] %}
<span class="visually-hidden">{{ baseline.names[browser] }} {{ baseline.versions[browser] }}, поддерживается</span>
</span>
<span class="wdi-browser-compat__version" aria-hidden="true" data-compat="yes">{{ baseline.versions[browser] }}</span>
{% elif baseline.flagged[browser] %}
<span class="visually-hidden">{{ baseline.names[browser] }} {{ baseline.versions[browser] }}, за флагом</span>
<span class="wdi-browser-compat__version" aria-hidden="true" data-compat="flag">
</span>
{% elif baseline.preview[browser] %}
<span class="visually-hidden">{{ baseline.names[browser] }}, превью</span>
<span class="wdi-browser-compat__version" aria-hidden="true" data-compat="preview"></span>
{% else %}
<span class="visually-hidden">{{ baseline.names[browser] }}, не поддерживается</span>
</span>
<span class="wdi-browser-compat__version" aria-hidden="true" data-compat="no"></span>
{% endif %}
</li>
{% endfor %}
</ul>
<a class="wdi-browser-compat__link" href="https://web.dev/baseline/" target="_blank">О Baseline</a>
</div>
{% if baseline.groupIds %}
<div class="wdi-browser-compat">
<div class="wdi-browser-compat__items">
{% for groupId in baseline.groupIds %}
<doka-baseline groupId="{{ groupId }}"></doka-baseline>
{% endfor %}
</div>
</div>
{% endif %}
3 changes: 3 additions & 0 deletions src/scripts/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ import './modules/person-badges-tooltip.js'
import './modules/answer.js'
import './modules/pwa.js'
import './modules/triggers.js'
import { DokaBaseline } from './web-components/doka-baseline.build.js'

window.customElements.define('doka-baseline', DokaBaseline)
1,353 changes: 1,353 additions & 0 deletions src/scripts/web-components/doka-baseline.build.js
Comment thread
vitya-ne marked this conversation as resolved.

Large diffs are not rendered by default.

108 changes: 18 additions & 90 deletions src/styles/blocks/baseline.css
Original file line number Diff line number Diff line change
@@ -1,118 +1,46 @@
.wdi-browser-compat {
max-width: 87.5%;
margin-block-start: 40px;
margin-block-end: 20px;
align-items: center;
color: var(--color-light);
display: flex;
flex-wrap: wrap;
}

.wdi-browser-compat__items {
flex: 1 1 100%;
display: flex;
flex-direction: column;
flex-wrap: wrap;
margin: 1rem 0;
padding: 0;
gap: 24px;
list-style: none;
}

.wdi-browser-compat__item {
align-items: center;
display: flex;
justify-content: center;
}

.wdi-browser-compat__icon {
display: inline-block;
height: 24px;
margin-right: 6px;
width: 24px;
background-repeat: no-repeat no-repeat;
background-position: center center;
background-size: cover;
}

.wdi-browser-compat__icon[data-browser="chrome"] {
background-image: url("/images/baseline/chrome.svg");
}

.wdi-browser-compat__icon[data-browser="firefox"] {
background-image: url("/images/baseline/firefox.svg");
doka-baseline {
min-height: 64px;
}

.wdi-browser-compat__icon[data-browser="edge"] {
background-image: url("/images/baseline/edge.svg");
}

.wdi-browser-compat__icon[data-browser="safari"] {
background-image: url("/images/baseline/safari.svg");
}

.wdi-browser-compat__version {
box-sizing: border-box;
--size-2: clamp(0.75rem, 0.71rem + 0.18vw, 0.875rem);
background-repeat: no-repeat no-repeat;
background-position: center center;
background-origin: content-box;
border-radius: 10000px;
display: inline-block;
font-size: var(--size-2);
height: 24px;
line-height: 24px;
min-width: 24px;
text-align: center;
padding-inline: 0.5ch;
}

.wdi-browser-compat__version[data-compat="yes"] {
background: var(--wdi-success-bg-color, #e9f6ed);
color: var(--wdi-success-color, #0d652d);
}

.wdi-browser-compat__version[data-compat="flag"] {
background-color: var(--wdi-warn-bg-color, #fff5e3);
background-image: url("/images/baseline/flag.svg");
color: var(--wdi-warn-color, #c34900);
}

.wdi-browser-compat__version[data-compat="no"] {
background-color: var(--wdi-error-bg-color, #fce8e8);
background-image: url("/images/baseline/no.svg");
color: var(--wdi-error-color, #a50e0e);
}

.wdi-browser-compat__version[data-compat="preview"] {
padding: 2px;
background-color: var(--wdi-warn-bg-color, #fff5e3);
background-image: url("/images/baseline/preview.svg");
color: var(--wdi-warn-color, #c34900);
}

.wdi-browser-compat__link {
flex: 0 0 100%;
margin-left: 0;
color: currentColor;
}

@media (width >= 50em) {
@media (width >= 768px) {
.wdi-browser-compat {
flex-wrap: nowrap;
max-width: 81%;
}
}

.wdi-browser-compat__label {
flex: none;
margin-bottom: 0;
width: auto;
@media (width >= 1024px) {
.wdi-browser-compat {
max-width: 87.5%;
}
}

.wdi-browser-compat__link {
flex: none;
margin-left: auto;
@media not all and (width >= 1024px) {
.wdi-browser-compat {
padding: inherit;
}
}

@media (width >= 600px) {
.wdi-browser-compat__label {
margin-right: 24px;
@media (width >= 1680px) {
.wdi-browser-compat {
max-width: 100%;
}
}
45 changes: 3 additions & 42 deletions src/views/doc.11tydata.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ function hasTag(tags, tag) {
return (tags || []).includes(tag)
}

function assignGreaterValue(map, item, key) {
if (!Number.isNaN(item[key]) && Number(item[key]) > map[key]) {
map[key] = Number(item[key])
}
return map
}

const asyncFilter = async (arr, predicate) => {
const results = await Promise.all(arr.map(predicate))
return arr.filter((_v, index) => results[index])
Expand Down Expand Up @@ -257,43 +250,11 @@ module.exports = {
},

baseline: function (data) {
const { doc, collections, hasBaseline } = data
const { webFeatures } = collections
const { doc, hasBaseline } = data
if (hasBaseline) {
const keys = ['chrome', 'edge', 'firefox', 'safari']
const names = { chrome: 'Chrome', edge: 'Edge', firefox: 'Firefox', safari: 'Safari' }
const versions = doc.data.baseline
.filter((g) => Object.keys(webFeatures[g.group]).includes('status'))
.map((g) => {
return webFeatures[g.group].status.support
})
.reduce(
(map, item) => {
for (const key of keys) {
assignGreaterValue(map, item, key)
}
return map
},
{ chrome: 0, edge: 0, firefox: 0, safari: 0 },
)
const supported = Object.keys(versions).reduce(
(map, item) => {
if (versions[item] === 0) {
map[item] = false
}
return map
},
{ chrome: true, edge: true, firefox: true, safari: true },
)
const flagged = { chrome: false, edge: false, firefox: false, safari: false }
const preview = { chrome: false, edge: false, firefox: false, safari: false }
const groupIds = doc.data.baseline.filter((g) => g.group).map((g) => g.group)
return {
keys,
names,
versions,
flagged,
supported,
preview,
groupIds,
}
}
return {}
Expand Down
9 changes: 6 additions & 3 deletions src/views/doc.njk
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,14 @@
</div>

<div class="article__content doc__wrapper">

{% if hasBaseline %}
{% include "blocks/baseline.njk" %}
{% endif %}

<div class="article__content-inner content">
{{ doc.templateContent | safe }}
{% if hasBaseline %}
{% include "blocks/baseline.njk" %}
{% endif %}

{% include "practices.njk" %}
{% include "questions.njk" %}
</div>
Expand Down