diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 81c216d..38ea84c 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -6,11 +6,8 @@ const currentPath = Astro.url.pathname; const navItems = [ { href: '/', label: 'Home' }, { href: '/about/', label: 'About' }, - { href: '/demonstrations/', label: 'Demonstrations' }, { href: '/downloads/', label: 'Downloads' }, { href: '/docs/', label: 'Docs' }, - { href: '/search/', label: 'Search' }, - { href: '/community/', label: 'Community' }, { href: '/faq/', label: 'FAQ' }, ]; --- @@ -49,11 +46,27 @@ const navItems = [ }
  • @@ -68,12 +81,25 @@ const navItems = [ @@ -83,7 +109,7 @@ const navItems = [ const html = document.documentElement; const sunIcon = document.getElementById('sun-icon'); const moonIcon = document.getElementById('moon-icon'); - + function updateIcons() { if (html.classList.contains('dark')) { sunIcon.style.display = 'block'; @@ -93,21 +119,24 @@ const navItems = [ moonIcon.style.display = 'block'; } } - + function toggleTheme() { html.classList.toggle('dark'); localStorage.setItem('theme', html.classList.contains('dark') ? 'dark' : 'light'); updateIcons(); } - + // Initialize theme from localStorage or system preference - if (localStorage.getItem('theme') === 'dark' || - (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) { + if ( + localStorage.getItem('theme') === 'dark' || + (!localStorage.getItem('theme') && + window.matchMedia('(prefers-color-scheme: dark)').matches) + ) { html.classList.add('dark'); } - + updateIcons(); - + themeToggle.addEventListener('click', toggleTheme); @@ -125,7 +154,9 @@ const navItems = [ background: color-mix(in srgb, var(--color-bg-primary) 95%, transparent); border-bottom: 1px solid var(--color-border-subtle); backdrop-filter: blur(8px); - transition: background-color 0.3s ease, border-color 0.3s ease; + transition: + background-color 0.3s ease, + border-color 0.3s ease; } html.dark .site-header { @@ -213,11 +244,27 @@ const navItems = [ color: var(--color-text-secondary); } - .site-footer a { - color: var(--color-link); + .footer-brand p { + margin: 0; + color: var(--color-text-primary); + } + + .footer-nav-list { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: var(--space-sm) var(--space-md); + } + + .footer-nav-list a { + color: var(--color-text-secondary); + text-decoration: none; + transition: var(--transition-smooth); } - .site-footer a:hover { + .footer-nav-list a:hover { color: var(--color-link-hover); } diff --git a/src/pages/about.astro b/src/pages/about.astro index a6110e3..be7090c 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -20,6 +20,15 @@ import BaseLayout from '../layouts/BaseLayout.astro'; steering toward your target, you can enter text at speeds competitive with touch typing, using only a single pointing device.

    +
    +

    + Real-world example: Yvette, a Dasher user, writes using a trackpad and reports speeds + of around 32 words per minute, faster than other techniques she has tried. +

    +

    + Watch Yvette's demonstration video. +

    +

    Origins

    @@ -99,8 +108,9 @@ import BaseLayout from '../layouts/BaseLayout.astro';

    @@ -182,5 +191,144 @@ import BaseLayout from '../layouts/BaseLayout.astro'; + + +
    +

    Video Demonstrations

    +

    + Watch Dasher in action with these video demonstrations showing different input methods. +

    +

    + Open Full YouTube Playlist +

    + +
    +
    +

    Yvette: Trackpad Demo (~32 WPM)

    +

    + Yvette uses Dasher with a trackpad and reports typing at around 32 words per minute. +

    +
    + +
    +
    + +
    +

    Eye-Tracking Demo (Nov 2001)

    +

    Classic eye-tracking demonstration from the original project videos.

    +
    + +
    +
    + +
    +

    Control Mode

    +

    Enhanced eye-tracking mode demonstrating control mode behavior.

    +
    + +
    +
    + +
    +

    Dasher Eyetracker and BreathDasher

    +

    Additional legacy demos now hosted on YouTube.

    +
    + +
    +

    + More videos: + EyeDasher 4800, + BreathDasher. +

    +
    +
    +
    + + +
    +

    Join the Dasher Community

    +

    + Dasher is developed and maintained by a global community of users, developers, and + researchers. We welcome contributions of all kinds. +

    + + +
    diff --git a/src/pages/community.astro b/src/pages/community.astro deleted file mode 100644 index 43074db..0000000 --- a/src/pages/community.astro +++ /dev/null @@ -1,58 +0,0 @@ ---- -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - -
    -
    -

    Join the Dasher Community

    - -

    - Dasher is developed and maintained by a global community of users, developers, and - researchers. We welcome contributions of all kinds. -

    - - -
    -
    -
    diff --git a/src/pages/demonstrations.astro b/src/pages/demonstrations.astro deleted file mode 100644 index b02991d..0000000 --- a/src/pages/demonstrations.astro +++ /dev/null @@ -1,188 +0,0 @@ ---- -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - -
    -
    -

    Dasher Demonstrations

    - -

    - Watch Dasher in action with these video demonstrations showing different input methods and - use cases. -

    - -
    -

    What is Dasher?

    -

    - Dasher is a zooming interface that allows you to enter text by steering toward letters. As - you move toward a letter, it expands and other letters appear, creating a continuous flow - of text entry. -

    -
    - Animated GIF of Dasher in action -
    -
    - -
    -

    Input Method Demonstrations

    - -
    -
    -

    Mouse Input

    -

    - The most common way to use Dasher. Simply move your mouse to steer toward the letters - you want. -

    -
    - -
    -

    Touchscreen

    -

    - Perfect for tablets and smartphones. Touch and drag to navigate the zooming interface. -

    -
    - -
    -

    Eye-Tracking

    -

    - For users with limited motor control, Dasher works with eye-tracking devices for - hands-free text entry. -

    -
    - -
    -

    Head-Tracking

    -

    Use head movements to control Dasher, ideal for users who cannot use their hands.

    -
    -
    -
    - -
    -

    See It In Action

    -

    - The original project videos are now available on YouTube. Start with the full playlist, - then use the featured demos below. -

    -

    - Open YouTube Playlist -

    - -
    -
    -

    Eye-Tracking Demo (Nov 2001)

    -

    Classic eye-tracking demonstration from the original project videos.

    -
    - -
    -
    - -
    -

    Control Mode

    -

    Enhanced eye-tracking mode demonstrating control mode behavior.

    -
    - -
    -
    - -
    -

    Dasher Eyetracker and BreathDasher

    -

    Additional legacy demos now hosted on YouTube.

    -
    - -
    -

    - More videos: - EyeDasher 4800, - BreathDasher. -

    -
    -
    -
    - -
    -

    Web Demo (Preview)

    -

    - Try the browser-based version of Dasher directly on this page. This preview supports basic - functionality and is still missing some features from the desktop app. -

    -
    - -
    -

    - If the embed does not load, open the demo in a new tab: - dasher-web browser demo. -

    -
    - -
    -

    Try Dasher Yourself

    -

    - The best way to understand Dasher is to try it. Download and install Dasher on your - computer to experience the zooming interface firsthand. -

    - -
    -
    -
    -
    diff --git a/src/pages/docs/concepts/how-dasher-works/index.md b/src/pages/docs/concepts/how-dasher-works/index.md index 3d3dd63..f0e5446 100644 --- a/src/pages/docs/concepts/how-dasher-works/index.md +++ b/src/pages/docs/concepts/how-dasher-works/index.md @@ -41,23 +41,21 @@ First, they walk into the "a" section of the library. There, they are confronted "aa", "ab", "ac.... az" [Picture (ii)].
    -
    - (ii) - Dasher showing letter regions while writing 'hello' -

    Looking more closely at a specific region

    +
    +
    + (ii) + Dasher showing letter regions while writing 'hello' +

    Looking more closely at a specific region

    +
    +
    + (iii) + Higher-resolution Dasher screenshot showing probable next letters +

    Zooming further into the most likely continuations

    +
    - Looking more closely at the "al" section, they can find books starting "ala", "alb"... "alz" [Picture (iii)]. -
    -
    - (iii) - Higher-resolution Dasher screenshot showing probable next letters -

    Zooming further into the most likely continuations

    -
    -
    - By looking ever more closely at the shelf, the writer can find the book containing the text he wishes to write. Thus writing can be described as **zooming in on an alphabetical library, steering as you go**. diff --git a/src/pages/docs/concepts/how-dasher-works/page-3.md b/src/pages/docs/concepts/how-dasher-works/page-3.md index e7ae319..1c54976 100644 --- a/src/pages/docs/concepts/how-dasher-works/page-3.md +++ b/src/pages/docs/concepts/how-dasher-works/page-3.md @@ -65,7 +65,7 @@ The best way to understand Dasher is to see it in motion. We have several types Visit our demonstrations page to see animations and videos of Dasher in action.

    - View All Demonstrations → + View All Demonstrations →

    diff --git a/src/pages/docs/getting-started/how-to/manual/index.md b/src/pages/docs/getting-started/how-to/manual/index.md index 9601cce..18e849c 100644 --- a/src/pages/docs/getting-started/how-to/manual/index.md +++ b/src/pages/docs/getting-started/how-to/manual/index.md @@ -144,7 +144,7 @@ Your settings are automatically saved. To reset to defaults: ### Getting Help -- Visit the [Community](/community/) page for support +- Visit the [Community](/about/#community) page for support - Check the [Documentation](/docs/) for more guides - Report issues on [GitHub](https://github.com/dasher-project/dasher/issues) diff --git a/src/pages/docs/getting-started/how-to/tips/index.md b/src/pages/docs/getting-started/how-to/tips/index.md index 4c4ef55..825cf26 100644 --- a/src/pages/docs/getting-started/how-to/tips/index.md +++ b/src/pages/docs/getting-started/how-to/tips/index.md @@ -11,7 +11,7 @@ layout: ../../../../../layouts/DocsLayout.astro If you find Dasher hard to imagine based on static pictures, please take a look at the -animations. **When you watch someone else steering Dasher, +animations. **When you watch someone else steering Dasher, you may find it looks difficult, but be assured: it is actually very easy; it's a lot like driving a car.** ## Quick Tips for Using Dasher @@ -50,7 +50,7 @@ Dasher has many settings you can adjust to make it more comfortable: ## Need More Help? -- Watch the demonstrations to see Dasher in action +- Watch the demonstrations to see Dasher in action - Read the user manual for detailed instructions - Join our Matrix chat to ask questions - Check out the GitHub discussions diff --git a/src/pages/docs/getting-started/index.md b/src/pages/docs/getting-started/index.md index eb33c91..99b6112 100644 --- a/src/pages/docs/getting-started/index.md +++ b/src/pages/docs/getting-started/index.md @@ -31,7 +31,7 @@ Welcome to the Dasher documentation. This section will help you get started with

    Demonstrations

    See Dasher in action.

    @@ -39,7 +39,7 @@ Welcome to the Dasher documentation. This section will help you get started with

    Need Help?

    Get help from the community.

    diff --git a/src/pages/docs/index.astro b/src/pages/docs/index.astro new file mode 100644 index 0000000..877fcf6 --- /dev/null +++ b/src/pages/docs/index.astro @@ -0,0 +1,205 @@ +--- +import DocsLayout from '../../layouts/DocsLayout.astro'; +--- + + +
    +
    +

    Documentation

    +

    + Welcome to the Dasher documentation. Search or choose a section below to get started. +

    + +
    +
    + +
    + +
    +
    +

    🚀 Getting Started

    +

    New to Dasher? Start here.

    + +
    + +
    +

    📖 Using Dasher

    +

    Learn how Dasher works and how to use it effectively.

    + +
    + +
    +

    ⚙️ Customization

    +

    Personalize Dasher for your needs.

    + +
    + +
    +

    📚 Reference

    +

    Lookup and troubleshooting.

    +
      +
    • FAQ - Frequently asked questions
    • +
    • Reference - Technical reference
    • +
    • Tutorials - Advanced tutorials
    • +
    +
    + +
    +

    🔬 Research & Development

    +

    For researchers and developers.

    + +
    + +
    +

    👥 Community

    +

    Connect with other users and developers.

    + +
    +
    + +
    +

    Need Help?

    +

    + Join our Matrix chat room or check the + FAQ for quick answers. +

    +
    +
    +
    +
    + + + + + diff --git a/src/pages/docs/index.md b/src/pages/docs/index.md deleted file mode 100644 index e4fa9ed..0000000 --- a/src/pages/docs/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Documentation - Dasher -description: Dasher documentation index -layout: ../../layouts/DocsLayout.astro ---- - -# Documentation - -Welcome to the Dasher documentation. Choose a section below to get started. - -
    -
    -

    🚀 Getting Started

    -

    New to Dasher? Start here.

    - -
    - -
    -

    📖 Using Dasher

    -

    Learn how Dasher works and how to use it effectively.

    - -
    - -
    -

    ⚙️ Customization

    -

    Personalize Dasher for your needs.

    - -
    - -
    -

    📚 Reference

    -

    Lookup and troubleshooting.

    - -
    - -
    -

    🔬 Research & Development

    -

    For researchers and developers.

    - -
    - -
    -

    👥 Community

    -

    Connect with other users and developers.

    - -
    -
    - -
    -

    Need Help?

    -

    - Join our Matrix chat room or check the - FAQ for quick answers. -

    -
    diff --git a/src/pages/docs/research/future-directions.md b/src/pages/docs/research/future-directions.md index 87cff93..1725ccc 100644 --- a/src/pages/docs/research/future-directions.md +++ b/src/pages/docs/research/future-directions.md @@ -117,7 +117,7 @@ Dasher welcomes contributions in all these areas. If you're interested in workin - **Research** - Conduct experiments and publish results - **Documentation** - Improve guides and tutorials -See our [community page](/community/) for more ways to contribute. +See our [community page](/about/#community) for more ways to contribute. ## Related Projects @@ -171,5 +171,5 @@ The future of Dasher depends on community involvement. Whether you're a: dasher-core and dasher-gtk on GitHub.

    - Join the Community + Join the Community diff --git a/src/pages/docs/special-needs/index.md b/src/pages/docs/special-needs/index.md index c92dea4..8a04bcf 100644 --- a/src/pages/docs/special-needs/index.md +++ b/src/pages/docs/special-needs/index.md @@ -55,7 +55,7 @@ Experienced users reach **30 words per minute**. For a movie demonstrating Dasher with an eye-tracker, see our -demonstrations page. +demonstrations page. ## Frequently Asked Questions @@ -170,6 +170,6 @@ and speech output. Integration is available for both Linux and Windows systems.

    Get Started

    Ready to try Dasher? Download and install or - watch demonstrations to see Dasher in action. + watch demonstrations to see Dasher in action.

    diff --git a/src/pages/docs/tutorials/advanced/index.md b/src/pages/docs/tutorials/advanced/index.md index bd1ac5c..09c1cb7 100644 --- a/src/pages/docs/tutorials/advanced/index.md +++ b/src/pages/docs/tutorials/advanced/index.md @@ -28,7 +28,7 @@ Advanced configuration and customization options for Dasher.

    Input Methods

    diff --git a/src/pages/docs/tutorials/index.md b/src/pages/docs/tutorials/index.md index c9e099f..213584b 100644 --- a/src/pages/docs/tutorials/index.md +++ b/src/pages/docs/tutorials/index.md @@ -30,7 +30,7 @@ Step-by-step guides to help you get started with Dasher.

    Demonstrations

    See Dasher in action with videos and animations.

    diff --git a/src/pages/index.astro b/src/pages/index.astro index 935e15f..a2eefc7 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -19,41 +19,67 @@ import BaseLayout from '../layouts/BaseLayout.astro';

    What is Dasher?

    +
    +
    + Animated GIF showing Dasher's zooming text-entry interface in action +
    + Dasher's zooming interface lets you steer toward letters to type. +
    +
    +
    +

    + Dasher is a revolutionary text-entry interface that uses a zooming interface where you + navigate toward your target. Unlike traditional keyboards where you hunt for each + letter, Dasher presents letters in a continuous stream where you steer toward what you + want to type. +

    +

    + As you move toward a letter, it expands and other letters appear. By continuously + steering toward your target, you can enter text at speeds competitive with touch typing, + using only a single pointing device. +

    +
      +
    • Works with mouse, touch, eye-tracking, head-tracking, and other pointing devices.
    • +
    • Supports 60+ languages with customizable alphabet files.
    • +
    • Uses language-model prediction so likely text is easier and faster to reach.
    • +
    • Free and open-source software licensed under GPL-3.0.
    • +
    +
    +
    +
    + +
    +

    Try It Now (Preview)

    - Dasher is a revolutionary text-entry interface that uses a zooming interface where you - navigate toward your target. Unlike traditional keyboards where you hunt for each letter, - Dasher presents letters in a continuous stream where you steer toward what you want to type. + You can try Dasher in your browser, but this web demo is currently incomplete and may be + buggy.

    - As you move toward a letter, it expands and other letters appear. By continuously steering - toward your target, you can enter text at speeds competitive with touch typing, using only a - single pointing device. + For the full and more stable experience, use the desktop version of Dasher.

    -
    - -
    -

    Key Features

    -
    -
    -

    Accessible

    -

    - Works with any continuous pointing device: mouse, touchscreen, eye-tracking, - head-tracking, and more. -

    -
    -
    -

    Multilingual

    -

    Support for over 60 languages through customizable alphabet files.

    -
    -
    -

    Efficient

    -

    Information-theoretic optimal text entry using language models for prediction.

    -
    -
    -

    Open Source

    -

    Free and open-source software licensed under GPL-3.0.

    -
    +
    +
    +

    + If the embed doesn't load, open the demo in a new tab. +

    @@ -71,7 +97,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';

    Add Languages

    Configure Dasher for your preferred language.

    - +

    Join the Community

    Get help, report bugs, and contribute to Dasher.

    diff --git a/src/pages/press.astro b/src/pages/press.astro index 60b302b..b549175 100644 --- a/src/pages/press.astro +++ b/src/pages/press.astro @@ -269,7 +269,7 @@ import BaseLayout from '../layouts/BaseLayout.astro';

    Publications

    Academic papers and research

    - +

    Demonstrations

    Videos showing Dasher in action

    diff --git a/src/pages/search.astro b/src/pages/search.astro deleted file mode 100644 index 7e77f07..0000000 --- a/src/pages/search.astro +++ /dev/null @@ -1,85 +0,0 @@ ---- -import BaseLayout from '../layouts/BaseLayout.astro'; ---- - - -
    -
    -

    Search

    -

    Search across docs, guides, and site pages.

    -
    - -
    -
    -
    - - - diff --git a/src/styles/global.css b/src/styles/global.css index 83aa84e..0849ada 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -22,7 +22,9 @@ body { line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transition: background-color 0.3s ease, color 0.3s ease; + transition: + background-color 0.3s ease, + color 0.3s ease; } /* ========================================================================== @@ -280,7 +282,7 @@ html.dark .skip-to-main { --color-border: #1a2a3a; --color-text-secondary: #1a2a3a; } - + html.dark { --color-border: #ffffff; --color-text-secondary: #ffffff; diff --git a/src/styles/pages.css b/src/styles/pages.css index e73c3f9..9c8636f 100644 --- a/src/styles/pages.css +++ b/src/styles/pages.css @@ -620,7 +620,7 @@ pre code { .diagram img { max-width: 100%; - width: 100%; + width: min(100%, 420px); height: auto; display: block; border-radius: var(--radius-sm); @@ -656,6 +656,14 @@ pre code { gap: var(--space-md); } +.diagram-grid-tight { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.diagram-grid-tight .diagram img { + width: min(100%, 260px); +} + /* Key concept with coral background */ .key-concept-coral { padding: var(--space-lg); @@ -1367,6 +1375,23 @@ li { } } +@media (max-width: 860px) { + .what-is-dasher-content { + grid-template-columns: 1fr; + } + + .what-is-dasher-demo { + max-width: 340px; + margin-inline: auto; + } +} + +@media (max-width: 700px) { + .diagram-grid-tight { + grid-template-columns: 1fr; + } +} + /* Homepage */ .hero-section { text-align: center; @@ -1386,6 +1411,43 @@ li { opacity: 0.9; } +.what-is-dasher-content { + display: grid; + grid-template-columns: minmax(220px, 300px) 1fr; + gap: var(--space-lg); + align-items: start; +} + +.what-is-dasher-demo { + margin: 0; + padding: var(--space-md); + background-color: var(--color-canvas-white); + border: 2px solid var(--color-horizon-mint); + border-radius: var(--radius-md); +} + +.what-is-dasher-demo img { + width: 100%; + height: auto; + display: block; + border-radius: var(--radius-sm); +} + +.demo-caption { + margin-top: var(--space-sm); + margin-bottom: 0; + font-size: 0.9rem; +} + +.key-feature-points { + margin: var(--space-md) 0 0 0; + padding-left: 1.25rem; +} + +.key-feature-points li { + margin-bottom: var(--space-xs); +} + .feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); @@ -1504,6 +1566,7 @@ html.dark .demo-card, html.dark .demo-preview, html.dark .video-item, html.dark .external-link, +html.dark .what-is-dasher-demo, html.dark .feature-card, html.dark .update-card, html.dark .input-method, @@ -1744,6 +1807,7 @@ html.dark .community-link p, html.dark .download-card p, html.dark .demo-card p, html.dark .demo-type p, +html.dark .demo-caption, html.dark .step p, html.dark .resource p, html.dark .source p,