Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 30 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI

on:
push:
branches: [main]
pull_request:

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
test:
name: Node ${{ matrix.node }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: [20, 22, 24]

steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node }}
- run: npm test
- run: npm run check
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Changelog

All notable changes to this project are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [2.0.0] - 2026-07-12

### Added

- A two-layer component API that keeps the edge and ground shadow fixed while the cap moves.
- JaydenART green and brown variants with documented CSS custom properties.
- Keyboard focus, disabled, reduced-motion, forced-colors, and touch interaction states.
- A responsive, dependency-free live demo with a strict Content Security Policy.
- Deterministic contract tests and CI on Node.js 20, 22, and 24.
- Contributing, security, and release documentation.

### Changed

- The live demo uses semantic HTML, local stylesheets, responsive layout, and stable press geometry.
- The README documents the component structure, customization API, accessibility behavior, and development checks.

### Fixed

- Pressing the modern component no longer moves the base or changes layout dimensions.
- Keyboard focus is visible instead of being removed.
- The demo no longer depends on an external background image or inline JavaScript.

### Compatibility

- The original `.JayBrown` single-element class remains available for existing markup.

[2.0.0]: https://github.com/JaydenART/JaydenART_Realistic_3D_CSS_Button/releases/tag/v2.0.0
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Contributing

Focused improvements are welcome.

## Before Opening a Pull Request

1. Keep `JayButton.css` dependency-free.
2. Preserve native button semantics and keyboard behavior.
3. Avoid layout shifts in hover, focus, active, and disabled states.
4. Keep reduced-motion and forced-colors behavior working.
5. Run `npm test` and `npm run check`.
6. Update the README and changelog when public behavior changes.

Please explain the problem, the implementation choice, and how you verified the result. Screenshots are useful for rendering changes, but they should accompany a reproducible description.
Loading
Loading