Global Toolbar Controls logo

Global Toolbar Controls

Organization
dembrandt
global-toolbar-controls

Currency, language, region and unit selectors live in a low-profile header or footer spot. Use when designing locale switchers or product-wide preference controls.

Overview

Publisherdembrandt
Repositorydembrandt-skills
Skill nameglobal-toolbar-controls
Stars
169
Forks
21
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by dembrandt on GitHub. Read the source before you install it.

Installation

Install the Global Toolbar Controls AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/dembrandt/dembrandt-skills/tree/main/skills/global-toolbar-controls
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/dembrandt/dembrandt-skills.git /tmp/dembrandt-skills
mkdir -p .claude/skills
cp -r /tmp/dembrandt-skills/skills/global-toolbar-controls .claude/skills/global-toolbar-controls
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Global Toolbar Controls in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Global Toolbar Controls on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Global Toolbar Controls is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Global Toolbar Controls

What Belongs Here

Global controls affect the entire product experience but are not the user's primary task. They are reached occasionally — once per session or less — and should not compete visually with primary navigation or content.

Typical global toolbar controls:

  • Currency selector (e-commerce, financial tools)
  • Language / locale switcher
  • Region or market selector
  • Unit system (metric / imperial)
  • Theme toggle (light / dark)
  • Accessibility preferences (font size, contrast)

These are distinct from user account settings (which live in a profile menu) and from contextual settings (which live adjacent to the feature they affect).

Two classes hide in this list. Controls that change what is shown (region, market, tenant) and controls that change how it is presented (language, theme, units). Group them apart. Lay the preferences out as a row, not a stack. A stack grows with every preference and gives a personal setting the same weight as the control that picks the data. A row absorbs the next preference at no cost to height.

Where to Place Them

Header utility strip

A secondary row above or within the main header, right-aligned. Common on e-commerce and international sites.

[Logo]                    [EN | EUR | 🌍]  [Account]  [Cart]
────────────────────────────────────────────────────────────
[Main navigation]

Header right — compact

Inline with the main header, far right, using small typography and minimal visual weight.

[Logo]  [Nav items ...]              [EUR ▾]  [EN ▾]  [Account ▾]

Footer

For controls the user sets once and rarely revisits. Language and region selectors frequently appear in footers on large international sites (Airbnb, Apple). Appropriate when the control is truly infrequent.

Dedicated settings area

For more complex preference sets, a Settings page or panel is cleaner than cramming everything into the toolbar. The toolbar should link to it, not contain it.

Typography and Visual Treatment

Global toolbar controls are secondary UI — they should not draw the eye away from primary content.

  • Font size: 13–14px — deliberately smaller than body text (14px maximum per the type scale)
  • Colour: muted — use a secondary text colour (--color-text-secondary), not the primary text colour
  • No bold — regular weight only
  • Compact spacing — tighter padding than primary navigation items
  • Separator — a | or thin vertical rule between adjacent controls (language | currency) keeps them grouped without using full button chrome
css
.toolbar-control {
  font-size: var(--text-sm);       /* 13–14px */
  color: var(--color-text-secondary);
  font-weight: 400;
  padding: 4px 8px;
}

Interaction Pattern

Global controls typically use a compact dropdown — clicking the label opens a small popover or select with the available options.

  • Show the current value as the trigger label: EUR ▾, EN ▾
  • A language control shows the current language as code or name, never a globe or flag alone. A globe names the category, not the state. A flag names a country. List choices by endonym ("Suomi", "Deutsch"): the reader who needs the control cannot read the language it is translated into
  • Currency: symbol + code
  • Region and language are independent axes. Every link and region switch carries the current language forward. The region default is a fallback for entry points only
  • Keep the option list short — if it exceeds ~20 items, add a search input inside the dropdown
  • On selection, apply immediately and confirm with a brief status update (toast or inline update) if the change has a visible effect
  • A persisted preference is also synced across open tabs. Listen for the storage event and rehydrate. It fires in the other tabs, never the writer, so the tab the developer watches is always right. If the value gates the first fetch, gate the fetch on hydration

Never Distort a Flag

To fit a flag into a round or square icon, crop it or use artwork drawn for that shape. Give the icon box explicit equal width and height so no border, line-height or flex container can resize one axis; check rendered width and height separately.

Review Checklist

  • Are global controls placed consistently in one location across all pages?
  • Is the typography smaller and more muted than primary navigation?
  • Does the control show the current value as its label, for language the language itself, listed by endonym?
  • Are what-is-shown controls (region, tenant) grouped apart from how-it-is-shown preferences, and the preferences laid out in a row?
  • Do links and region switches keep the current language?
  • Is a persisted preference synced across tabs, and does it gate the first fetch that depends on it?
  • Is the dropdown or popover compact and keyboard-navigable?
  • Are global controls separated from user account settings?
  • On mobile, are global controls accessible without being prominent? (Often moved to a menu or footer on small screens)
  • Are flags cropped or shape-specific, in boxes with explicit equal sides, never scaled non-uniformly?

Frequently asked questions

What does the Global Toolbar Controls AI skill do?

Currency, language, region and unit selectors live in a low-profile header or footer spot. Use when designing locale switchers or product-wide preference controls.

Why use Global Toolbar Controls on TypingMind?

Because you install it once and use it with any model. Global Toolbar Controls is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Global Toolbar Controls in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/dembrandt/dembrandt-skills/tree/main/skills/global-toolbar-controls. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Global Toolbar Controls?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Global Toolbar Controls?

As many as you like. As long as a model supports skills, you can use Global Toolbar Controls with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Global Toolbar Controls AI skill free?

Yes. It is published on GitHub by dembrandt under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇