Skip to content
Back to skills

Aetox Web Templates

ASecurity

กติกาของหน้าเว็บที่ Aetox ยอมส่งออกไป — สัญญาที่ทุกหน้าต้องผ่าน (responsive โดยไม่ต้องจดเบรกพอยต์ · ไม่ใช้สคริปต์ถ้าไม่จำเป็นต่อความหมาย · landmark จริง · โทเคนสีสำหรับสว่างและมืด · กราฟเป็น SVG ในไฟล์ · เข้าถึงได้ตั้งแต่โครง) พร้อมคลังคำศัพท์การเคลื่อนไหวกับจังหวะที่วัดมาแล้วใน STANDARD.md **นี่คือกติกาล้วน ไม่มีมาร์กอัปให้แปะแม้แต่บรรทัดเดียว** ออกแบบและเขียนเอง แล้วเอากติกามาตรวจ

  • 46 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgoshellspringawsfrontend

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add Mikedev115/Aetox --skill aetox-web-templates --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Aetox Web Templates?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Aetox Web Templates
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mikedev115-aetox-web-templates/badge)](https://www.skillsdirectory.com/skills/mikedev115-aetox-web-templates)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: aetox-web-templates
before: writing a web page or a screen as an .html file that is not a slide deck
description: กติกาของหน้าเว็บที่ Aetox ยอมส่งออกไป — สัญญาที่ทุกหน้าต้องผ่าน (responsive โดยไม่ต้องจดเบรกพอยต์ · ไม่ใช้สคริปต์ถ้าไม่จำเป็นต่อความหมาย · landmark จริง · โทเคนสีสำหรับสว่างและมืด · กราฟเป็น SVG ในไฟล์ · เข้าถึงได้ตั้งแต่โครง) พร้อมคลังคำศัพท์การเคลื่อนไหวกับจังหวะที่วัดมาแล้วใน STANDARD.md **นี่คือกติกาล้วน ไม่มีมาร์กอัปให้แปะแม้แต่บรรทัดเดียว** ออกแบบและเขียนเอง แล้วเอากติกามาตรวจ
---

# Web templates

**กติกา ไม่ใช่มาร์กอัปให้คัดลอก**

คลังส่วนย่อย 104 ชิ้น kit ชั้น B และหน้าตัวอย่าง 7 ใบ ถูกถอดออกเมื่อ 5 ก.ย. 2569
ด้วยเหตุผลที่ `STANDARD.md`
เปิดหัวไว้เอง: **เทมเพลตที่เข้ารหัสค่ากลางไม่ได้ช่วยโมเดลที่เก่งอยู่แล้ว มันตรึงให้อยู่ที่ค่ากลาง**
ตัวเลขที่ตัดสิน — ส่วนย่อยเฉลี่ย 11.7 KB ต่อไฟล์ เทียบชั้นวางสไลด์ที่ 2.2 KB
ที่ 2 KB โมเดลอ่านแล้วเขียนเอง ที่ 11.7 KB โมเดลแปะ และสิ่งที่แปะคือค่าเฉลี่ยของเมื่อวาน
เทสที่คุมคลังนั้นก็สารภาพเรื่องเดียวกัน: มันวัด responsive มั้ย มี `<nav>` มั้ย
ตั้งชื่อคลาสมีคำนำหน้ามั้ย — ซึ่ง**หน้าที่เขียนสดจากศูนย์ผ่านทุกข้อ** ตามข้อ 0 ไฟล์พวกนั้นจึงไม่ควรมีอยู่

สิ่งที่เหลืออยู่คือสิ่งที่เจนสดไม่ได้จริง ๆ: **ข้อกำหนดที่ตรวจได้** กับ **ค่าที่วัดมาแล้ว**

## วิธีใช้สกิลนี้

ออกแบบหน้าเอง เขียนเอง แล้วเอาสัญญาข้างล่างมาตรวจก่อนส่ง
สกิลนี้ไม่ตัดสินว่าหน้าตาควรเป็นยังไง — `aetox-frontend-design` ตัดสินเรื่องนั้น
และ `aetox-design-system` ถือชั้นโทเคนถ้าหน้านั้นต้องมีพาเลตต์ของตัวเอง

## หน้าตัวอย่างย้ายออกไปเป็นกรณีศึกษาแล้ว

`pages/` 7 ใบไม่ได้ถูกลบ — ย้ายไป `docs/case-studies/web-pages/` ในรีโปนี้
มันยังมีค่าสำหรับ**คนที่นั่งอ่าน**ว่าปัญหาหนึ่งถูกแก้ยังไง สิ่งที่มันไม่ควรเป็นคือ
ของที่อยู่ในบันเดิลให้โมเดลหยิบ

ตัวเลขที่ตัดสิน: ทั้งเจ็ดใบรวมกัน **1.18 MB** ทุกใบใหญ่กว่าที่ `skill_view` ส่งได้
ในครั้งเดียว (64 KB) แลกกับการถูกเปิด **สองครั้งตลอดอายุของมัน** ซึ่งเป็นไฟล์เดียวกัน
ทั้งสองครั้ง ของที่ต้องอ่านสามรอบกว่าจะครบใบแล้วยังเขียนกลับในรอบเดียวไม่ได้
ไม่ใช่ตัวอย่าง มันคือค่าผ่านทาง

ที่ลึกกว่านั้น หน้าตัวอย่างเต็มใบสอนสิ่งที่มันไม่ได้ตั้งใจสอน โมเดลที่เปิดมันขึ้นมา
ไม่ได้อ่านว่า "เขาแก้ปัญหานี้ยังไง" มันอ่านว่า "นี่คือหน้าที่ผ่านแล้ว" แล้วส่งของที่
ใกล้เคียงกลับมา กลไกเดียวกับที่ทำให้ `sections/` ต้องออกไป แค่ใหญ่กว่าเดิม

**กติกาที่ตามมาจากเรื่องนี้: ไม่เอามาร์กอัปยัดกลับเข้าโฟลเดอร์สกิลอีก** ไม่ว่าจะ
ตั้งใจดีแค่ไหน สิ่งที่อยู่ในนี้ได้คือข้อกำหนดที่ตรวจได้กับค่าที่วัดมาแล้ว งานที่อยาก
เก็บไว้ให้คนดูไปอยู่ที่ `docs/case-studies/`

## มาตรฐาน

`STANDARD.md` ในโฟลเดอร์นี้คือเส้นที่ทุกอย่างต้องผ่าน **อ่านก่อนเขียนหน้า** ไม่ใช่อ่านเฉพาะ
ตอนจะเพิ่มไฟล์กลับเข้ามา — ข้อ 4 ถือคลังคำศัพท์การเคลื่อนไหว ข้อ 5 ถือกับดักที่พังจริง
สองข้อนั้นคือของที่หน้าเขียนสดต้องใช้ ไม่ใช่ของที่คนดูแลโฟลเดอร์ใช้
ย่อเหลือประโยคเดียว: **เทมเพลตที่เข้ารหัสค่ากลางไม่ได้ช่วยโมเดลที่เก่งอยู่แล้ว มันตรึงให้อยู่ที่ค่ากลาง**
ไฟล์ที่จะกลับเข้ามาได้ต้องถือของที่เจนสดไม่ได้ — ค่าที่วัดมาแล้ว เทคนิคที่ต้องลองสิบรอบ
หรือทิศทางศิลป์ที่เป็นการเลือกจริง ไม่ใช่ค่าเริ่มต้น ในนั้นยังมีคลังคำศัพท์การเคลื่อนไหว
ทิศทางศิลป์ห้าแบบ และบันทึกกับดักที่พังจริงในเบราว์เซอร์นี้

## สัญญาที่ทุกหน้าต้องผ่าน

- **Responsive without breakpoint bookkeeping.** `clamp()` for type and space,
  `repeat(auto-fit,minmax(min(280px,100%),1fr))` for grids, so the column count
  follows the content and the viewport rather than a list of widths somebody has
  to maintain. Media queries appear only where the layout genuinely changes
  shape, such as the dashboard sidebar becoming a top scroller.
- **No script unless the semantics cannot be had without it.** The FAQ is
  `<details>`, the mobile menu is a checkbox. Both are keyboard operable and
  survive a JS error, which a scripted version of either does not. The one
  exception worth making is a theme toggle: a theme choice that resets on every
  reload has no script-free equivalent worth calling a feature, so it carries a
  small inline script rather than faking one.
- **Real landmarks and real elements.** `<nav>`, `<main>`, `<footer>`,
  `<blockquote>` with `<cite>`, `<ol>` when the order is the meaning, `<table>`
  with `scope` on every header. This is not decoration; it is what a screen
  reader navigates by.
- **Every class is namespaced `w-`.** `aetox-frontend-design` warns that
  generated CSS most often breaks when a class selector and an element selector
  fight over the same padding. Two templates pasted into one page must not be
  able to reach into each other.
- **Light and dark from tokens**, defined once in the shell. No template hard
  codes a colour.
- **Charts are SVG and CSS in the file.** No charting library, no CDN, for the
  same reason as everything else here: a page whose picture arrives from
  somewhere else is a page with a hole in it when that somewhere else is down.
  Series colours come from `--viz-1` … `--viz-6` in the shell, in that fixed
  order, never cycled; the ramp `--viz-s1` … `--viz-s5` carries magnitude. Those
  six ran through the `dataviz` skill's validator in both modes — lightness
  band, chroma floor, colour-blind separation of adjacent pairs, contrast
  against the surface. Change a value and run it again rather than eyeballing.
  Every mark carries its own `<title>`, so the browser draws the tooltip and a
  screen reader reads the number without a line of script, and every chart ships
  the same numbers as a table inside `<details>`.
- **Accessible by construction.** Visible focus ring, a skip link, labels that
  stay visible when the field is filled, `prefers-reduced-motion` respected, and
  status never carried by colour alone.
- **The page moves at least once.** A section that sits perfectly still needs a
  written reason; stillness with no reason is a page that reads as a printout.
  The numbers here are measured, not chosen — 338 entrance transitions across the
  24 published originals in the reference folder. **94% are springs** (318 of
  338), and **73% ride zero bounce** (248), so the default entrance is a spring
  that arrives without overshooting; keep a small bounce for one hero moment, not
  for a grid of cards. Duration clusters at **0.9s** (0.6s for something small,
  1.5s for a hero). Siblings **stagger 100ms apart**, in the order somebody reads
  them. What moves is **opacity and `translateY` only** — 331 of 338 keep
  `scale:1`, so a card that enters rises, it does not grow. Offsets are 50px for
  a block, 10–20px for a line of text. Note the gap against `STANDARD.md` ข้อ 4,
  which says 0.45–0.7s and 60–90ms: those are the older numbers and the source is
  slower and calmer than the rule.
- **The markup ships because you typed it, not because you found it.** Do not
  download a published page and edit it, and do not strip somebody's analytics
  out of their work and pass it on. Studying other people's pages to *measure*
  them is the right use and is how the two rules above got their numbers — read
  the timings, the offsets, the easing, then write your own. A deliverable of
  400 KB in 67 lines is not a page that was designed; it is a copy, and it
  belongs to somebody.

  This is here because the contract was silent about it and silence read as
  permission: on 5 ก.ย., asked for "a nice landing page, anything, go look
  around", the agent called `skill_view` on this skill and `web_search` for
  "best Framer template landing page" **twenty-one milliseconds apart** — in one
  batch, so it had decided to go shopping before this file's first sentence
  reached it. It came back with a paid marketplace template, stripped the
  tracking script, and served it on localhost. Every other rule here passed on
  that page: it was one self-contained file, it was responsive, it had real
  landmarks. Provenance was the only thing nothing checked.
- **Never start an entrance at `opacity:0`.** The originals begin at `.001` in
  316 of 338 entrances, which keeps the element composited so the first animated
  frame does not pop. This is also the cheap way past the trap in `STANDARD.md`
  ข้อ 5: `opacity:0` plus `fill-mode:both` plus a delay renders a blank first
  frame, and on a hero that blank frame is the page's own thumbnail. Whatever the
  start value, the rest state must be the finished page — someone who turns
  motion off sees everything a person with it on sees, just not moving.

## เมื่อแก้ของที่มีอยู่แล้ว

**ออกแบบใหม่ให้ของที่มีอยู่** อ่านหน้าจริงหรือคอมโพเนนต์จริงก่อนเสมอ — เปิดไฟล์ที่
เรนเดอร์บนเส้นทางนั้นจริง ๆ ไม่ใช่ไฟล์ข้าง ๆ ที่หน้าตาคล้ายกัน แล้วยกสิ่งที่มันพูดและ
ทำอยู่มาด้วย หน้าที่เขียนจากการเดาว่าของเดิมมีอะไร ไม่ใช่การออกแบบใหม่ มันคือหน้าคนละหน้า
ที่บังเอิญอยู่ URL เดียวกัน

**แก้ต่อจากที่เพิ่งทำ** จับคู่การแก้ให้ตรงกับสิ่งที่ถูกขอ คำผิดหรือตัวเลขผิดคือการแก้
บรรทัดเดียว ไม่ใช่เขียนส่วนนั้นใหม่ทั้งก้อน คำขอที่อยากได้ทิศทางอื่น ("ลองฮีโร่ที่กล้ากว่านี้")
คุ้มที่จะทำสองสามแบบวางเทียบกัน เพราะเทียบถูกกว่าเดาแล้วเจนใหม่ คำขอที่อยากขัดเกลา
ของเดิมต่อ ยังเป็นการแก้เล็ก ๆ ตรงจุดในมาร์กอัปเดิม สับสนสามอย่างนี้เสียมากกว่าที่ประหยัด —
เขียนทั้งส่วนใหม่เพื่อแก้คำผิดคือการทิ้งทุกอย่างที่มันทำถูกอยู่แล้ว

ไม่ว่าจะแก้แบบไหน ระบบโทเคนที่เลือกไว้ตอนต้นยังบังคับอยู่ การแก้รอบหลังที่หยิบสีหรือ
ฟอนต์นอกระบบนั้น คือการไหลกลับไปหาค่าเริ่มต้นทั่ว ๆ ไปที่ `aetox-frontend-design` เตือนไว้
ถ้าพาเลตต์ต้องเปลี่ยนจริง นั่นคือการแก้แผน — ตั้งใจและเรียกชื่อมัน ไม่ใช่ปล่อยให้ค่าหนึ่ง
เล็ดลอดเข้ามาตอนแก้ครั้งที่สาม

## Not in here

Video, because Aetox produces none; `video_ocr` reads one. Slides, which are
`aetox-slide-templates` and a different contract entirely. Documents and sheets,
which leave through `doc_write` and `sheet_write` as OOXML and are not HTML at
all. If any of those earn templates, they earn a skill of their own rather than
a folder in here: a template nobody can tell the medium of is a template that
gets pasted into the wrong file.

Files in this skill

  • CATALOG.md29.1 KB
  • SKILL.md16 KB
  • STANDARD.md39.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…