レスポンシブ実装の判断基準を明確にし、不要なブレイクポイントとコード量を最小化する。 CSS はブラウザへの「提案」であり、厳密な命令ではない。ブラウザに委ねられる仕事は委ねる。
レスポンシブ対応は以下の優先順序で検討する。上位で解決できるなら下位は使わない。
| name | animations |
|---|---|
| description | UI アニメーションの要否判断、動き方・見せ方・実装方針の提案、パフォーマンスとアクセシビリティのレビューを行う。対象は hover, active, focus, popover, tooltip, dropdown, dialog, tab, segmented control, card, button, toast, accordion, carousel, scroll-linked animation, View Transitions など。 |
以下のようなタスクでこの Skill を使うこと。
| fit-text { | |
| display: block flow; | |
| &::part(svg) { | |
| display: block flow; | |
| inline-size: 100%; | |
| block-size: auto; | |
| } | |
| &::part(text) { |
| /** | |
| * 要素の位置情報を監視してCSS変数として:rootに設定するWeb Component | |
| * AnchorPositioningのような位置指定に使用可能 | |
| * | |
| * @example | |
| * ```html | |
| * <rect-observer var-prefix="global-header"> | |
| * <header>...</header> | |
| * </rect-observer> | |
| * ``` |
| /** | |
| * Add ARIA attributes to table elements and their children. | |
| * When the display property is changed with CSS, the element may not be recognized as a table. | |
| * @see https://adrianroselli.com/2018/05/functions-to-add-aria-to-tables-and-lists.html | |
| * @param {HTMLElement} container - Container element to apply ARIA attributes to | |
| * @returns {void} | |
| */ | |
| function addTableARIA(container: HTMLElement): void { | |
| const tables = container.querySelectorAll<HTMLTableElement>("table"); | |
| for (const table of tables) { |
ICS MEDIAで新しく掲載された以下の記事を読みました。
https://ics.media/entry/250520/
大前提として、私は ICS MEDIA の記事を愛読していますし、池田さんをはじめとして ICS で働くエンジニアの方々とはリアルで親交もあり、尊敬しています。
上述した「@scope入門」という記事に関しても @scope の基礎的な使い方が纏まっており、黎明期ゆえに文献の少ない @scope にフィーチャーした参考記事としては質の高い記事であることは間違いありません。
| module.exports = { | |
| rules: { | |
| 'unit-disallowed-list': [ | |
| [ | |
| 'vw', | |
| 'vh', | |
| 'vi', | |
| 'vb', | |
| 'vmin', | |
| 'vmax' |
| { | |
| "container": { | |
| "prefix": "container", | |
| "body": [ | |
| "--_container-size-min: $1;", | |
| "--_container-size-max: $2;", | |
| "--_to-cqi-min: calc(tan(atan2(1px, var(--_container-size-min))) * 100cqi);", | |
| "--_to-cqi-max: calc(tan(atan2(1px, var(--_container-size-max))) * 100cqi);", | |
| "container: $3 / inline-size;", | |
| "@container style(--debug: true) {", |