Let people bring their preferences to your product. Users bring the preferences they choose, with consent.
Planned. DNA Share isn’t available yet; design partners will shape it.
Acme Projects wants to use your OwnUX
Choose what to share. You can revoke access at any time in Satin.
What Acme Projects receives
preview{
"layout": "list",
"density": "comfortable",
"labels": "plain",
"visual": { "contrast": "more", "text_scale": 1.25, "reduced_motion": true }
}
Your use of other apps
Work content from any app
Your Satin activity
Anything you leave unticked
Familiar from the first minute. DNA Share is the consented bridge between a person’s Interface DNA and your product.
- 1
Your product asks
A person signed in to your OwnUX-enabled product sees “Use my OwnUX”, next to your own settings.
- 2
The person chooses
Satin shows the dna:* scopes you request, such as layout, spacing and labels. They can untick any.
- 3
You receive granted values
Using OAuth 2.0 with PKCE, you receive only values for the scopes they granted.
- 4
They can revoke
Revoking in Satin ends the grant, and you delete stored values under the data-processing terms.
How the grant works
Standard OAuth 2.0 with PKCE. Consent is per scope, and nothing is shared until the person says so.
The person signs in to Satin, not your product, and an intercepted code can’t be exchanged on its own. Step through the planned flow, from first click to revocation.
- Scopes are named dna:<axis>, one for each Interface DNA axis.
- Satin records each grant: product, scopes, granted and revoked times.
- Revoked grants return nothing; your product deletes what it stored.
Person
Your product
satinSatin
1 Use my OwnUX
2 Scopes + challenge
3 Consent screen
4 Chosen scopes
5 One-time code
6 Code + verifier
7 Granted values
8 Revoked
Step 1 of 8
The person clicks “Use my OwnUX”. A person signed in to your product chooses to bring their Interface DNA. Nothing is shared yet.
One scope per axis. Nine scopes, one per Interface DNA axis in ownux-dna/1. Every axis is optional.
dna:density
Comfortable, balanced or compact.
dna:navigation
Task-first, project-first or recent-first.
dna:layout
List, board, or a compact table where your data can be shown as one.
dna:labels
Plain, standard or expert wording. Your product’s own meanings are always kept.
dna:interaction
Keyboard-first, pointer-first or mixed, and the shortcut scheme.
dna:guidance
Inline hints, an optional walkthrough, or minimal help.
dna:visual
Contrast, text scale from 0.75 to 2, and reduced motion.
Shown to people as “Accessibility”
dna:locale
Language, time zone, date format and the first day of the week.
dna:change_policy
Preview first, apply presets by hand, or approved rules.
Consent that stays meaningful. DNA Share moves preferences, never behaviour. These boundaries aren’t settings.
Never usage or content. You never receive their use of other apps, app content or Satin activity. Only granted values.
Revocable, for real. A revoked grant stops working, and the data-processing terms oblige you to delete stored values.
Never adapted twice. Planned for the beta: on an OwnUX-enabled product, the Satin extension will stand aside and offer DNA Share instead.
No Satin account needed. People without Interface DNA set their preferences in your product with OwnUXSettings, in the same schema.
Questions, answered.
PlannedDNA Share is planned. It depends on Satin’s control plane, which isn’t built yet.
It is planned, not built. It needs Satin’s control plane and an OAuth authorisation server, which come after the SDK alpha. The rule already exists in the OwnUX core: a product receives only the axes a grant covers.