A TypeScript fork of Mark Teekman's Accessible Astro Starter theme, adding strict TypeScript support
accessible-astro-starter-ts — Astro Starter Template
By mrivard
A TypeScript fork of Mark Teekman's Accessible Astro Starter theme, adding strict TypeScript support and providing an accessible blog theme and components.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Provides semantic landmarks such as header, main, footer, section, and nav, and focus outlines that work on dark/light backgrounds
Includes accessible components such as SkipLinks, keyboard-accessible dropdown navigation, ResponsiveToggle, DarkMode, and SiteMeta
Integrates Prettier (with astro and tailwind plugins) and ESLint's jsx-a11y strict accessibility settings
Demonstrates dynamic routing via [...page].astro and [post].astro, providing a basic blog with breadcrumbs and pagination
Supports Markdown and MDX with examples, uses astro-icon for icons, and includes a custom 404 page
Template Details
This is an Astro-based starter template, a fork of Mark Teekman's Accessible Astro Starter theme, with the main change being the addition of strict TypeScript support. The original theme is positioned as a ready-to-use blog theme that balances SEO and accessibility (a11y), including accessible components for building various page types, Tailwind CSS, and example pages for dynamic blogs, 404, Markdown, and MDX.
For accessibility, the template provides semantic landmarks such as header, main, footer, section, and nav, outline focus indicators that work on both dark and light backgrounds, and several aria attributes; at the component level, it includes SkipLinks (jump to main menu or main content), Navigation with keyboard-accessible dropdown navigation, ResponsiveToggle for mobile navigation, DarkMode with accessible buttons and color scheme settings that follow system preferences, SiteMeta for setting custom page metadata, and the .sr-only utility class; it also supports prefers-reduced-motion to disable animations when the user enables that preference.
For engineering and content, the template integrates Prettier (prettier-plugin-astro, prettier-plugin-tailwind) and ESLint (eslint-plugin-jsx-a11y with strict accessibility settings), uses astro-icon for icons, supports Markdown and MDX with examples, demonstrates dynamic routing via [...page].astro and [post].astro and provides a basic blog with breadcrumbs and pagination, and 404.astro provides an adjustable custom error page. The template also includes View Transitions, but the README notes that you should consult the Astro documentation for its accessibility considerations. In src/assets/scss/base, there are collections of utility classes for breakpoints, button classes, font settings, reset, and outline.
This fork was created by an individual for personal use; the author states that TypeScript-related issues can be reported to this repository, while non-TypeScript issues should be directed to the upstream Accessible Astro Starter repository. The repository is under the MIT license, and the code can be used, modified, commercially used, and distributed for free, but the copyright and license notice must be retained; third-party assets such as demo images, fonts, and icons need to be checked against their respective licenses.
Is it right for your project?
Use Cases
- Building a blog site that balances SEO and accessibility
- Starting an Astro project that requires strict TypeScript mode support
- Introducing accessible navigation, skip links, dark mode, and other basic components to a project
- Writing content with Markdown or MDX and needing example pages for reference
Suitable For
- Astro blog projects that prioritize accessibility
- Astro developers who need strict TypeScript configuration
- Front-end developers who want to reference accessible components and dynamic routing examples
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
You can clone the repository via git clone, or create a project using npm create astro@latest -- --template mrivard/accessible-astro-starter-ts
- 2
Install dependencies with npm install; the local development server runs at localhost:4321
- 3
Build output goes to ./dist/; you can preview locally before deployment with npm run preview
- 4
For TypeScript-related issues, please report to this repository; for non-TypeScript issues, it is recommended to go to the upstream Accessible Astro Starter repository
- 5
When using View Transitions, refer to the accessibility considerations in the Astro documentation
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.
Must comply with when using
- You are allowed to use, modify, commercially use, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- When using View Transitions, be mindful of accessibility issues; the README notes to consult the Astro official documentation for accessibility considerations.
- Non-TypeScript related issues should be reported to the upstream Accessible Astro Starter repository rather than this repository.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
View Transitions (⚠️ see [astro-docs](https://docs.astro.build/en/guides/view-transitions/#accessibility) for accessibility considerations)
Original README
https://github.com/mrivard/accessible-astro-starter-ts/blob/main/LICENSEhttps://github.com/mrivard/accessible-astro-starter-ts/blob/main/README.mdFor any issues that are *not* TypeScript-related, you would be much better served by engaging with [Accessible Astro Starter](https://github.com/markteekman/accessible-astro-starter?tab=readme-ov-file#%EF%B8%8F-helping-out) instead.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 56 / 100
- Technologies
- Astro
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2024-07-10
- Screenshot last checked
- 2026-10-03
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 733f88266925353a16b57bbf834b3d712f66829f0c7b2dc3e70df981441f6e5e
2026-10-03T00:49:17.369Z
Source file / repository# Accessible Astro Starter for TypeScript A fork of [Mark Teekman](https://github.com/markteekman)'s [Accessible Astro Starter](https://github.com/markteekman/accessible-astro-starter) theme, with support added for strictest TypeScript.  Accessible Astro Starter is a ready to use, SEO and a11y friendly blogging theme. It contains plenty of accessible components to build several page types, Tailwind CSS to help you build faster and example pages such as a dynamic Blog, 404, Markdown and MDX. This theme is designed to help you build your project faster and provide a solid base for accessibility! ## ♿ (Accessibility) Features - Astro 4.0 - Tailwind CSS support - Prettier integration with `prettier-plugin-astro` and `prettier-plugin-tailwind` - ESLint integration with strict accessibility settings for `eslint-plugin-jsx-a11y` - Markdown and MDX support with examples included in the theme - Uses the awesome `astro-icon` package for the icons - Excellent Lighthouse/PageSpeed scores - Accessible landmarks such as `header`, `main`, `footer`, `section` and `nav` - Outline focus indicator which works on dark and light backgrounds - Several `aria` attributes which provide a better experience for screen reader users - `[...page].astro` and `[post].astro` demonstrate the use of dynamic routes and provide a basic blog with breadcrumbs and pagination - `404.astro` provides a custom 404 error page which you can adjust to your needs - `Header.astro` component included in the `DefaultLayout.astro` layout - `Footer.astro` component included in the `DefaultLayout.astro` layout - `SkipLinks.astro` component to skip to either the main menu or the main content - `Navigation.astro` component with keyboard accessible (dropdown) navigation (arrow keys, escape key) - `ResponsiveToggle.astro` component with an accessible responsive toggle button for the mobile navigation - `DarkMode.astro` component toggle with accessible button and a user system preferred color scheme setting - `SiteMeta.astro` SEO component for setting custom meta data on different pages - `.sr-only` utility class for screen reader only text content (hides text visually) - `prefers-reduced-motion` disables animations for users that have this preference turned on - Ships with many components such as Accordions, Breadcrumbs, Modals, Pagination [and many more](https://accessible-astro.dev/accessible-components) - A collection of utility classes such as breakpoints, button classes, font settings, resets and outlines in `src/assets/scss/base` - View Transitions (⚠️ see [astro-docs](https://docs.astro.build/en/guides/view-transitions/#accessibility) for accessibility considerations) ## 🚀 Getting started Create a new Astro project by either: - cloning this repository: ``` git clone https://github.com/mrivard/accessible-astro-starter-ts.git ``` *–or–* - using this repository as your project's template: ``` npm create astro@latest -- --template mrivard/accessible-astro-starter-ts ``` Then, run any of the following commands in your project's directory: | Command | Action | | :---------------- | :------------------------------------------- | | `npm install` | Installs dependencies | | `npm run dev` | Starts local dev server at `localhost:4321` | | `npm run build` | Build your production site to `./dist/` | | `npm run preview` | Preview your build locally, before deploying | ## 📦 Other Accessible Astro projects - [Accessible Astro Dashboard](https://github.com/markteekman/accessible-astro-dashboard/) - [Accessible Astro Components](https://github.com/markteekman/accessible-astro-components/) ## ❤️ Helping out I greatly encourage you to help with any TypeScript-related issues by either: 1. [Filing an issue](https://github.com/mrivard/accessible-astro-starter-ts/issues) 2. [Submitting a pull request](https://github.com/mrivard/accessible-astro-starter-ts/pulls) 3. [Starting a discussion](https://github.com/mrivard/accessible-astro-starter-ts/discussions) For any issues that are *not* TypeScript-related, you would be much better served by engaging with [Accessible Astro Starter](https://github.com/markteekman/accessible-astro-starter?tab=readme-ov-file#%EF%B8%8F-helping-out) instead. ## ☕ Thank you! A big thank you to [Mark Teekman](https://github.com/markteekman) and his [contributors](https://github.com/markteekman/accessible-astro-starter/graphs/contributors), who did 99.999% of the work on this starter theme, and to the creators of the awesome Astro static site generator! I forked Mark's theme for my own personal use, and perhaps you will find it useful as well.
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog
accessible-astro-starter
An accessibility-focused Astro 6 starter template with WCAG 2.2 AA practices, Tailwind CSS 4, TypeScript, Prettier, ESLint, form validation, blog and portfolio examples, and preference toggles for dark mode, high contrast, and reduced motion.
Astro · Blog

astro-erudite
astro-erudite is an opinionated, unstyled static blog template built with Astro and native CSS, with no UI or CSS framework and minimal dependencies.
Astro · Portfolio

astro-shopify
A lightweight Shopify headless ecommerce starter template built with Astro and Svelte, integrating the Shopify Storefront API for product and inventory data, with built-in cart state management and basic add-to-cart and checkout flow.
Astro · E-commerce

brutal
Brutal is a neobrutalism Astro starter theme from ElianCodes, derived from the author's personal site and generalized. It includes a Markdown blog collection, build-time RSS and sitemap, image optimization, Tailwind CSS styling, and Biome checks, with no JavaScript by default.
Astro · Starter

qwind
Qwind is a free and open-source website template built on Qwik and Tailwind CSS, featuring directory-based routing via QwikCity, a Markdown blog, dark mode, and static deployment configuration.
Astro · Tool Site
