Skip to content

Instantly share code, notes, and snippets.

@H-ymt
H-ymt / 見出し + アイコン実装の方針.md
Last active May 13, 2026 05:53
行に対してアイコンを綺麗に中央寄せされるUIの実装

見出し・リストアイコン実装の方針

  • align-items: center だけでセンタリングしない
  • 行に対してアイコンを中央寄せしたいときは、アイコン側で margin-block を調整する
  • 複数行になる見出し・リストでは、テキストは通常フロー優先で、必要に応じて float / position: absolute を使う
.parent {
  display: inline-flex;
 align-items: flex-start; /* center は使わない */
@H-ymt
H-ymt / フロントエンドコードレビューエージェント
Last active May 14, 2026 01:24
人がレビューする前に機械的にチェックするための、自分用レビューガイド兼エージェントスキル
## モチベーション
このガイド兼エージェントスキルは、
- 人のレビューに入る前に、**機械的にチェックできる観点**をはっきりさせたい
- PR ごとに毎回同じ指摘をするのではなく、**再現性のある基準**にまとめておきたい
- アクセシビリティやパフォーマンス、HTML/ブラウザ仕様まわりの「自分なりのこだわり」を、
AI エージェントにも共有して、**レビューの質とスピードを上げたい**
という目的で作っています。
@H-ymt
H-ymt / astro.md
Last active March 27, 2026 04:12
フロントエンド実装時に AI エージェントが従うべきルール(テンプレート)
paths
**/*.astro

Astro のルール

対象: Astro 5、TypeScript (strict)

レンダリング方針

@H-ymt
H-ymt / index.css
Last active December 28, 2025 01:15
日本語Webフォントを使用しない、パフォーマンスを考慮したフォント構成
body {
font-family: Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Noto Sans JP, sans-serif, Segoe UI Emoji, Segoe UI Symbol;
}
@H-ymt
H-ymt / react-button.md
Last active May 13, 2026 00:35
React x CSS Modules でつくるボタンコンポーネント
import clsx from "clsx";
import styles from "./index.module.css";
import Link from "next/link";

type ButtonProps = {
  children: React.ReactNode;
  className?: string;
  visual?: "primary" | "secondary";
  size?: "sm" | "md" | "lg";
@H-ymt
H-ymt / infinite-scroll.md
Last active May 11, 2025 02:04
CSSだけでテキストの無限スクロール
<div class="loop">
  <p aria-hidden="true">A Future of Smiles and Growth</p>
  <p aria-hidden="true">A Future of Smiles and Growth</p>
</div>
.loop {
 position: absolute;
@H-ymt
H-ymt / index.html
Last active July 22, 2025 09:21
<dialog>タグを使用したモーダル
<button type="button" class="openModal js-modalTrigger" data-modal-id="dialog1">Open Modal</button>
<dialog id="dialog1" aria-label="Modal name" class="dialog scrollControl js-modal">
<div class="modal__inner js-modalContent">
<h1 class="modal__title">Lorem ipsum dolor sit.</h1>
<p class="modal__text">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Culpa cumque odit quaerat libero, facere tempora placeat molestias eum sed
error rerum quisquam veritatis. Excepturi beatae ut vitae autem saepe expedita!
</p>
<button type="button" class="closeModal js-modalClose">Close Modal</button>
</div>
@H-ymt
H-ymt / accordion.js
Last active January 3, 2025 14:12
<details/>タグを使用した排他的アコーディオン
document.addEventListener("DOMContentLoaded", () => {
document.querySelectorAll(".js-details").forEach((el) => {
const summary = el.querySelector(".js-summary")
const content = el.querySelector(".js-content")
summary.addEventListener("click", (event) => toggleContent(el, content, event))
})
})
const animTiming = {
@H-ymt
H-ymt / initializeViewport.js
Last active November 23, 2024 11:03
ビューポートを固定させて狭小デバイスのレスポンシブ対応をするJS
// ビューポートのサイズを取得する
const viewportSize = () => {
const vw = window.innerWidth * 0.01
const vh = window.innerHeight * 0.01
document.documentElement.style.setProperty("--vw", `${vw}px`)
document.documentElement.style.setProperty("--vh", `${vh}px`)
}
// 375px以下のビューポートを固定
@H-ymt
H-ymt / _mixin.scss
Last active November 23, 2024 11:03
Sassでよく使用するmixin
// 三点リーダー
@mixin line-clamp($num, $num-sp: null) {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: $num;
overflow: hidden;
@if $num-sp {
@include sp {
-webkit-line-clamp: $num-sp;