> For the complete documentation index, see [llms.txt](https://developers-apps-in-toss.toss.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers-apps-in-toss.toss.im/landing-page/landing-page-en/design/consumer-ux-guide.md).

# UI/UX Guide

This document is a guide that gathers in one place the UI/UX standards you should follow when designing and developing Apps in Toss mini apps.

From how to set the brand logo, name, and color to the dark pattern prevention policy, UX writing principles, graphic resource usage, and resolution design standards, we guide you step by step. Please carefully check and apply each item before launching your service.

If the standards are not followed or a dark pattern is found, the review will not be approved, and even if it is found after launch, service exposure may be restricted or suspended.

***

### Mini app branding guide

These are the standards prepared so that Apps in Toss services can deliver a brand experience that is clearly distinguished from Toss. Since they are important standards for keeping users from confusing Toss with Apps in Toss, please be sure to read and follow the guide.

***

**1. Brand logo / name / color**

We display the brand logo, brand name, and brand color throughout Toss and Apps in Toss screens so users can clearly recognize the brand.

**Brand logo**

The partner company's logo is shown in the All tab, Benefits tab, push notifications, alerts, navigation, and bridge. Please be sure to use the image or illustration file attached below to create the logo.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FgoQLBj6ToWx8HhNOxhrR%2Fimage.png?alt=media&#x26;token=f815fc0a-13b8-48ee-baeb-7f3640a5e035" alt=""><figcaption></figcaption></figure>

Please follow the standards below when creating and applying the logo.

* The size should be a square with sharp corners at 600×600 px. Rounded corners are not allowed.
* The logo must always have a background, and use a background color that is visible in both light mode and dark mode.
* If the logo itself already includes a background, like Anipang, make the image fill the entire 600×600 px area.
* Upload the logo file to the Apps in Toss console, and `granite.config.ts` at the top of the file `appsInToss` in the function `brand.icon` enter the same logo link in the property.

**Brand name**

The brand name is displayed in the All tab, Benefits tab, push notifications, alerts, navigation, and bridge. Unless there is a special reason, please write it in Korean. For example, `Toss`can be `Toss`is not recommended.

* Enter the brand name in the Apps in Toss console.
* `granite.config.ts` at the top of the file `appsInToss` in the function `brand.displayName` Enter the same brand name in the property.

**Brand color**

Brand color is used for entry points in Toss, bridges, and buttons (when using the Toss design system), among other places. The criteria for setting the brand color are as follows.

* If you already have a brand color, use it as is.
* If you don't have a brand color, choose the color most used in the logo.
  * If it's hard to choose, [color extraction site](https://lokeshdhakar.com/projects/color-thief/)you can also use it to extract a representative color from the logo image.
* If the brand color does not meet the color contrast criteria, it will be automatically adjusted while preserving the existing color as much as possible.
* `granite.config.ts` at the top of the file `appsInToss` in the function `brand.primaryColor` Enter a six-digit hex code value including `#`# `#3182F6`like this.

***

**2. Navigation bar**

The navigation bar is a fixed area at the top of the screen, and Apps in Toss provides a dedicated component for it. Depending on the type of service being onboarded, please refer to the guide below to set up the navigation bar.

* Game guide
* Non-game guide

***

**3. Tab bar**

The tab bar is not a required component. However, if you need one, you must implement it yourself using the floating tab bar provided by Toss.

Even if you use your own UI, please implement only the tab bar in the provided form. This is because if it overlaps with the default bottom tab on the Toss main screen, users may get confused about their current location.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FTRnoQbESHiTi4FyB103B%2Fimage.png?alt=media&#x26;token=b22caa63-02b3-4f61-be10-4407c9305688" alt=""><figcaption></figcaption></figure>

Please follow the standards below when setting up the tab bar.

* You can use a minimum of 2 tabs and a maximum of 5.
* You must keep the floating form provided by Toss.

***

### Dark pattern prevention policy

Toss users expect a consistent and trustworthy user experience anywhere. If standards differ from service to service, users may feel confused, and this can lead to a decline in trust in the service overall.\
UX guidelines are not rules to limit creativity, but minimum standards for providing users with a predictable and convenient experience.

For this reason, Toss has established minimum user experience standards that must be followed, and the examples below are fatal usability issues that fall outside these standards and cannot be launched as Apps in Toss services.

***

**1. When a bottom sheet appears as soon as you enter the service**

Instead of the screen the user expected right after entering the service, **an ad-like bottom sheet that blocks the entire screen**is shown.\
This includes bottom sheets requesting notification consent.

When users enter a service, they expect to be able to immediately carry out the purpose they intended.\
If an unexpected interrupt appears at this point, immersion is broken, and they are more likely to leave the service immediately.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F4FgE4c6kLAuVONI1p0qh%2Fimage.png?alt=media&#x26;token=6bde490c-91a9-42ce-baca-248baeb80791" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F8oUcDjrNuggnxQt6HVpK%2Fimage.png?alt=media&#x26;token=d9518749-7c97-4915-9052-ac2f2c4a8104" alt=""><figcaption></figcaption></figure>

***

**2. When a bottom sheet that blocks the previous screen appears after pressing the back button**

When a user is trying to go back to the previous screen and explore another service, but unexpectedly **a bottom sheet prompting notification consent appears**refers to this.

An additional interrupt intentionally designed to prevent users from leaving can give the impression that their autonomy is being violated. This experience can undermine trust in the service.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fvin9MSRY1yD0YwkyilSA%2Fimage.png?alt=media&#x26;token=4b42f569-fddf-432a-805b-2ec441257f04" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FKOL16Sm3jWp6RetmgLwy%2Fimage.png?alt=media&#x26;token=e73dfec3-723e-4792-8cda-e8e6ffc5a147" alt=""><figcaption></figcaption></figure>

***

**3. When there is no exit option**

This refers to a structure in which the user has no other choice but to select the CTA guided by the partner. Such a design, where there is no way to decline, can feel coercive to users. As a result, it is likely to lead to resentment and distrust of the service.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F6N4kMhYWveHL5RezuVZF%2Fimage.png?alt=media&#x26;token=2f03084e-1e40-40c2-93c5-46222b72412c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F0kfleL9R4fvBmCwifBg1%2Fimage.png?alt=media&#x26;token=2b977eee-a998-4be7-9990-b3f325181565" alt=""><figcaption></figcaption></figure>

***

**4. When ads are shown at unexpected moments**

The user selected a menu to receive an item, but contrary to expectation, **a full-screen ad appears**.

Ads that suddenly appear during the usage flow disrupt immersion and can leave an unpleasant impression of the service and brand.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FPkW3YuNsr942y5V4MgH7%2Fimage.png?alt=media&#x26;token=9ca58826-3a6d-44d6-a3b3-9f689cf32232" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FLBjNQuMVWC1eNJx21C5H%2Fimage.png?alt=media&#x26;token=5b7a7d38-55d7-44a3-bc66-d672d15d44b5" alt=""><figcaption></figcaption></figure>

***

**5. When users cannot predict the next action by looking only at the CTA button**

When the value already explained on the screen is repeated exactly in the CTA, so users cannot tell what screen or action the button will lead to.

CTA is a tool that clearly tells users what they will do next. If the button label is vague or only repeats the explanation, users cannot predict the result of the click and feel uneasy. This unease can make them hesitate to click and can ultimately lead to lower conversion rates.

Also, if exaggerated or redundant supporting text is displayed together above the CTA, the role of the button becomes blurred and can confuse users.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FNpastgGNaXESGtvg1WAV%2Fimage.png?alt=media&#x26;token=6ec34f4c-ae7a-4ee9-9ed4-eaa44f1e1ec6" alt=""><figcaption></figcaption></figure>

***

### UX writing

This guideline is a set of instructions provided so that you can use wording that applies Toss app's voice and tone.\
Please follow the guidelines below.

***

**1. haeyo-che (polite informal style)**

All text inside the product should be written in haeyo-che (polite informal style).\
**To create a consistent user experience, apply haeyo-che (polite informal style) to all text regardless of situation or context.**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fs3xrPf3sMIfvD0GcplCY%2Fimage.png?alt=media&#x26;token=9585da2d-d7de-4b44-b36a-f887513423ed" alt=""><figcaption></figcaption></figure>

***

**2. Active wording**

Inside the product, use active **active sentences**whenever possible. Passive sentences should be used only in specific situations.

**`Done` → `Did it`**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FVJgrA6cCYGQmRwWX0P77%2Fimage.png?alt=media&#x26;token=8f0c9812-f285-42c1-b1f5-88e7e8c8312f" alt=""><figcaption></figcaption></figure>

**Remove '\~었'**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fsag4ihC5KMbu4vuB7xyy%2Fimage.png?alt=media&#x26;token=2d401000-8a56-4771-a4ba-194eec9f758a" alt=""><figcaption></figcaption></figure>

**Reword the verb**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FPAOQrSa96BeC9pk5gPhn%2Fimage.png?alt=media&#x26;token=60226254-77e1-4498-82d8-002f17007cbd" alt=""><figcaption></figcaption></figure>

***

**3. Positive wording**

Reduce negative communication inside the product as much as possible and use positive sentences. Example: You can't, there isn't any (X) → If you \~, you can (O)

**There isn't any → There is**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FNZ7dqymQvCfeLlEbLUkP%2Fimage.png?alt=media&#x26;token=432a21ab-6e42-41a2-b69d-48b731e6dc08" alt=""><figcaption></figcaption></figure>

**Error message**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FsCRlrlMNHUICEYrSE2sc%2Fimage.png?alt=media&#x26;token=44c64283-11cf-45b2-acd6-c038165ee41f" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**The left button in the dialog is \[Close]**

The left button in the dialog is **Close**to standardize the wording. **Cancel**is not used because users may misunderstand it as canceling the task they are working on.
{% endhint %}

**When benefits cannot be received**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FDJwkWhJ89uj6NCj6fBPM%2Fimage.png?alt=media&#x26;token=d2bfcb48-d54d-4b07-a2a4-243f6d1bac84" alt=""><figcaption></figcaption></figure>

**Benefits eligibility notice**

**When the service can be used, but certain benefits cannot be received → positive sentence**\
Users may easily think they cannot use the entire product because of scanning.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fabk1sVHMdATa0BdaUUCN%2Fimage.png?alt=media&#x26;token=c4ffae46-0704-4b4e-9b23-5777760581d7" alt=""><figcaption></figcaption></figure>

***

**4. Casual honorifics**

Inside the product, '`Would you like to ~?`', '`Are you ~?`', '`to (honorific)`' and other overly polite forms like these are not used. It's better to use a casual, friendly tone as much as possible.

**Remove '\~시' from verbs**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FZ5kKRNRJkoXbqJqvF9TW%2Fimage.png?alt=media&#x26;token=5f68f008-bcfb-490e-bdb0-d55248af139b" alt=""><figcaption></figcaption></figure>

**'`be there`' → '`be`'**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fi1BdEwa8qqlnYezlU0Cc%2Fimage.png?alt=media&#x26;token=0fc0914f-b20f-4107-97a9-dc9f1f1371aa" alt=""><figcaption></figcaption></figure>

**'`ask respectfully`' → '`check`, `ask`'**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FpbXOokR14nz8oFPa17US%2Fimage.png?alt=media&#x26;token=c1fabe50-b117-4216-9e1f-0ce800afd34e" alt=""><figcaption></figcaption></figure>

**'`to (honorific)`' → '`to`'**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FVrpOe0dAV50dqCs8jt0f%2Fimage.png?alt=media&#x26;token=694ea0ec-e661-40ee-891b-af07fdd9fc8f" alt=""><figcaption></figcaption></figure>

**When it sounds awkward without honorifics**

In questions asking for user information, if you mechanically remove '`~시`', the sentence may sound awkward.\
**Try rewriting the sentence by making the information you want to find out the 'subject'.**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F4xeEnYrBVj65wyAs6Kdf%2Fimage.png?alt=media&#x26;token=4964f484-664d-4cad-b51c-4b359a30667f" alt=""><figcaption></figcaption></figure>

***

**5. '`{noun} + {noun}`Don't use**

**Write out Sino-Korean compounds**

You can break down Sino-Korean nouns and use them in verb form.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FF1AFeVcSQ97d1e5vOW6r%2Fimage.png?alt=media&#x26;token=2b742870-af38-4d1c-825c-b3a86520450e" alt=""><figcaption></figcaption></figure>

**When it is difficult to write out Sino-Korean words**

'`{noun} is {noun} so`Even just breaking it down into a '{noun} is {noun}' form can make it sound more casual.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FroJcLns5yrT0vi4r9b27%2Fimage.png?alt=media&#x26;token=41fe6ea9-4a19-4f9c-a970-936432277eea" alt=""><figcaption></figcaption></figure>

***

**Exception rules**

<details>

<summary><strong>Cases where passive sentences are allowed</strong></summary>

There are times when passive sentences create clearer and more concise communication. We'll show you cases where passive sentences can produce better wording.

**⚠️ Service termination, period expiration**

**Passive sentence**when written as

{% code collapsedlinecount="10" %}

```
<ul>
<li>You can emphasize the subject (ended service, period, etc.).</li>
<li>You can convey the nuances of 'termination' and 'expiration' accurately.</li>
</ul>
```

{% endcode %}

**For products where termination repeats periodically, do not use '`ends`'.**

**⚠️ When explaining the impact on users**

(main verbs: overdue, cancellation, application, etc.)**Passive sentence**when written as

{% code collapsedlinecount="10" %}

```
<ul>
<li>Clearly explain the <strong>causal relationship</strong>. You can show that it is a result that follows from the user's actions.</li>
</ul>
```

{% endcode %}

**⚠️ Reassuring users**

**Passive sentence**when written as

{% code collapsedlinecount="10" %}

```
<ul>
<li>You can reassure users in sensitive situations such as 'information collection notice'.</li>
</ul>
```

{% endcode %}

**⚠️ `becomes` (X) → `becomes` (O)**

Considering the limited space on mobile screens, please use all forms of '`becomes`' as '`becomes`'.

</details>

<details>

<summary><strong>Cases where honorifics are allowed</strong></summary>

In specific situations, you can use the interrogative ending '`Are you ~?`, `Did you?`'.

**⚠️ When asking a question using the user's context**

'`Are you ~?`', '`Did you?`You can reduce the user's embarrassment by using the honorific form '

**⚠️ When inferring the user's situation**

When Toss does not have clear information and you need the user to judge directly, you can politely ask with honorifics.

**⚠️ When the user's goodwill is needed**

When you need to rely on the user's goodwill, such as in a survey, ask politely in honorifics.

</details>

<details>

<summary><strong>Cases where negative sentences are allowed</strong></summary>

When you need to clearly tell the user something negative, it is okay to use negative sentences.

**⚠️ When the service cannot be used due to policy**

**Negative sentence**must be written

{% code collapsedlinecount="10" %}

```
<ul>
<li>You can clearly make users aware of the situation. Please also explain why it cannot be used.</li>
</ul>
```

{% endcode %}

**⚠️ When only some features cannot be used**

**Negative sentence**must be written

{% code collapsedlinecount="10" %}

```
<ul>
<li>Users can clearly recognize which features they cannot use.</li>
</ul>
```

{% endcode %}

* You can clearly explain the result of the user's choice.

**⚠️ Reassuring users**

**Negative sentence**must be written

{% code collapsedlinecount="10" %}

```
<ul>
<li>You can reassure users in sensitive situations such as 'information collection notice'.</li>
</ul>
```

{% endcode %}

</details>

***

### Graphics

We provide guidance on the graphic resources provided by Toss and how to use them correctly.

{% hint style="info" %}
**Graphic copyright notice**

All Toss graphic assets and graphics created with Toast are Viva Republica's intellectual property and are protected under the Copyright Act and related laws.

The provided graphics may only be used for service operation and promotion within the Apps in Toss partnership environment, and using them in other services or media through copying, modifying, distributing, transmitting, or public transmission is prohibited.
{% endhint %}

***

**Graphic resources provided by Toss**

**1. Icons & emojis**

Toss provides more than 7,000 icons and emoji sets. When designing in App Builder and Figma, you can check the icon and emoji list. In App Builder, after registering the app in the workspace, [after registering the app](https://appsintoss.gitbook.io/appsintoss-docs/guide/operation/console-workspace) you can start from the 'Design' menu. If you need to create icons yourself, [Apps in Toss icon creation guide](https://www.notion.so/21b714bbfde780fb84bac2acfbb4a6b9?pvs=21)please refer to it and create them according to the standards.

**\[Notes for use]**

* Please use icons at a size of 24–40 px on screen.
* Avoid combining two or more icons or emojis in parallel. Please use only one at a time.
* Graphic resources provided by Toss may only be used for UI design purposes within service screens and cannot be used in app information such as app logos or thumbnails.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FCjy0zLN2xg0KwX7Zcrko%2Fimage.png?alt=media&#x26;token=c6bc5b9c-fbd0-4ef2-a68f-57e878f32f3f" alt=""><figcaption></figcaption></figure>

**2. Smartphone mockup files**

When creating resources using smartphone mockups, please use the files provided above as is. Icons are provided in different sizes, so please do not crop them arbitrarily, adjust colors, or distort the shapes.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FnEhRyDRhLuuxKAJQLWdV%2Fimage.png?alt=media&#x26;token=40cb0f07-cd42-4ea6-894e-14b18b6a5dbf" alt=""><figcaption></figcaption></figure>

<details>

<summary>To reflect design updates, we recommend using the URL below even during development.</summary>

* **Full**
  * <https://static.toss.im/illusts/mockup-template-250508.png>
* **Large**
  * Top: <https://static.toss.im/illusts/mockup-large-top-0513.png>
  * Bottom: <https://static.toss.im/illusts/mockup-large-bottom-0513.png>
* **Medium**
  * Top: <https://static.toss.im/illusts/mockup-medium-top-0513.png>
  * Bottom: <https://static.toss.im/illusts/mockup-medium-bottom-0513.png>
* **Small**
  * Top: <https://static.toss.im/illusts/mockup-small-top-0513.png>
  * Bottom: <https://static.toss.im/illusts/mockup-small-bottom-0513.png>

</details>

**3. Toast (AI image generation tool)**

Based on the icons and emojis provided in item 1, you can generate 3D images. The generated graphics must receive approval for use from the Toss Graphic Design Team before being used on actual screens. Approval is usually completed within one day.

**4. Other**

For 3D graphics or animations, you can only use the resources included in the module provided by Toss.\
The scope of what is provided will gradually expand in the future.

***

**Proper use of graphics**

**1. Please use graphics that fit the context.**

Graphics are not decoration; they help users understand the meaning of the screen more easily.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FDBzQJwQn0Ga7KjXRthvL%2Fimage.png?alt=media&#x26;token=d269c07c-60ef-4aab-8e47-ad13708790ac" alt=""><figcaption></figcaption></figure>

**2. Please use them at a size appropriate for the information density.**

Use simple graphics small, and graphics with lots of detail large enough.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FlxXS0g7kEr42nC25FD0G%2Fimage.png?alt=media&#x26;token=e73a21a8-9b90-4946-a9b1-3f03773a42dd" alt=""><figcaption></figcaption></figure>

**3. Do not use too many graphics on one screen.**

As the number of graphics of similar size increases, attention gets scattered.\
Use only the single most essential graphic, and replace the rest with supporting graphics or icons.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F0cNE5OUtThm74NgkpaLZ%2Fimage.png?alt=media&#x26;token=803a52c5-a56e-452d-9229-e21e77ae70a7" alt=""><figcaption></figcaption></figure>

**4. Place them so they do not cover key information.**

Adjust the size and position so important content is not pushed down and unnecessary scrolling does not occur.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Foq2UE9kUI84qMzbCkH0X%2Fimage.png?alt=media&#x26;token=ac8cd647-27b5-4c87-8b45-048b395dca1a" alt=""><figcaption></figcaption></figure>

**5. Avoid negative or pleading emotional expressions.**

Expressions that make users uncomfortable or feel like begging or pleading count as dark patterns.\
Please do not use such emotional expressions.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FBHeAyD3knrAkdH50qBBN%2Fimage.png?alt=media&#x26;token=16761ab6-454f-47b9-9c8e-1b5785eed347" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FqvO4mQlGBhBgqxpPjcE1%2Fimage.png?alt=media&#x26;token=c2d71bb1-ef98-4a1f-a9b0-90ba19745eb6" alt=""><figcaption></figcaption></figure>

**6. Do not use decorative effects or visual effects.**

Meaningless illustrations, particles, or excessive gradients make the screen complex and hinder information delivery.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2F31WV951c3K34u0iKEiNE%2Fimage.png?alt=media&#x26;token=f68acb90-ee9c-48fa-83e2-8ae22932116d" alt=""><figcaption></figcaption></figure>

**7. Use graphics that accurately convey the situation.**

Using an exclamation-mark icon in a situation that is not an error, or using a loading animation when there is no need to wait, can cause users to misunderstand the situation.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FfkX0414Yrly8IUoH7lwj%2Fimage.png?alt=media&#x26;token=b16de1cb-69ad-4d75-b228-57f6df3f54e3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FmDxw8bCjjO0puoJnQume%2Fimage.png?alt=media&#x26;token=bc3ad0de-5549-476d-8716-d7a1dba8a1fd" alt=""><figcaption></figcaption></figure>

***

**Notes when partner companies create graphics themselves**

**1. Please maintain consistency with the Toss style.**

Toss aims for a simple, clear, and clean digital graphic style.\
Lyrical art styles, cartoon-like expressions, and hand-drawn feel can look out of place on screen.

**Examples of Toss's graphic style**

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fgc7WGJVu9qUU3HCOzCv7%2Fimage.png?alt=media&#x26;token=158f2477-b066-40a2-bf19-5757e0633ad3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FKlBQ37Q8hg7pZbdZkAXf%2Fimage.png?alt=media&#x26;token=c4647f81-a045-4bea-aa94-81b0723e5679" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FLYshnC8ID2IBylNzm1SD%2Fimage.png?alt=media&#x26;token=663122cc-d7dd-41ee-a365-c8ff00da660c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FZE7uNwjLvGav6oiObvEg%2Fimage.png?alt=media&#x26;token=b1ce4209-73ab-482a-82e0-82a9e841c62b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FHYSIih1iNnsBhCd803ih%2Fimage.png?alt=media&#x26;token=ea269330-b024-4b0e-a9dc-7387db48b2b5" alt=""><figcaption></figcaption></figure>

**2. Please use high-resolution graphics.**

Please create graphics in sharp, clean high resolution. If the resolution is low or there are many tiny particle-like effects, the quality may look low.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FwGTP9NvG1i9SoaQz88EN%2Fimage.png?alt=media&#x26;token=d64917cd-9fb1-43bd-a87c-37d90ea57da1" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FxwGwp6MD3bsW5HIHKaX1%2Fimage.png?alt=media&#x26;token=3411d56d-dc00-40a1-ba84-e89b6f70bf2c" alt=""><figcaption></figcaption></figure>

**3. They must be clearly visible in both dark mode and light mode.**

Graphics used in the Toss app should take both dark mode and light mode into account.\
Colors that are too bright or too dark may not be visible well in certain modes, so please use mid-tone colors.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FMIbxO287cyRNqZnNXocl%2Fimage.png?alt=media&#x26;token=01491a41-9eee-4d01-bc0a-ef8421fb0b87" alt=""><figcaption></figcaption></figure>

**4. Make them fit the whole screen.**

Balance the screen's overall color and layout so the graphics do not stand out more than other elements like text or CTA buttons.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2FxbvapNIefGYnWuXvNfiL%2Fimage.png?alt=media&#x26;token=1f7ecf65-3db6-48a5-9b6f-cec99f6ec6ff" alt=""><figcaption></figcaption></figure>

**5. Give a positive and tidy impression.**

Graphics play an important role in creating a sense of stability and trust in the service.\
Avoid overly monochrome, blurry, or dull impressions, and design them to feel bright and orderly.

<figure><img src="https://3984554959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGK6CDpIZXnm3aqLRTFjB%2Fuploads%2Fwe2pcDHe4sNaMnwQ3szp%2Fimage.png?alt=media&#x26;token=f649316c-3b02-4416-9931-50169f77905c" alt=""><figcaption></figcaption></figure>

***

### Resolution

This guide explains which resolution to use as the standard when developing Apps in Toss mini apps and how to design and optimize screens. Along with the recommended standards, it explains design directions that work stably across a variety of device environments.

Apps in Toss mini apps run on devices with various resolutions and aspect ratios. To reduce confusion caused by these environmental differences, this guide proposes a 'base-resolution-centered design' approach rather than a device-by-device approach.

{% hint style="info" %}
**Please be sure to check**

If you design based on one logical resolution and prepare assets at 1x and 2x, you can stably cover most of the actual traffic of Apps in Toss.
{% endhint %}

***

**Apps in Toss mini app fullscreen design standards**

Game mini apps in Apps in Toss must be implemented fullscreen. In fullscreen environments, you must consider the following.

* The content must fill the screen completely.
* There must be no webview margins or translucent areas left.
* The aspect ratio must not break, and letterboxing (black margins) must not appear due to device rotation.
* Notches, camera holes, and Dynamic Island must be handled as Safe Area.
* Asset quality must not noticeably degrade due to scaling.

So rather than adjusting the resolution differently for each device, it is important to choose one base resolution and handle differences through scaling.

***

**Two ways to think about resolution**

In Apps in Toss mini apps, we recommend thinking about resolution in the two ways below.

**① Logical Resolution**

The resolution used as the basis for UI layout, coordinate calculations, and game logic.

* This is a different concept from the actual device pixel resolution.
* We recommend choosing only one logical resolution.
* The same play feel and screen composition must be maintained across all devices.

**② Asset Resolution**

It refers to the pixel density of images, backgrounds, characters, and UI resources.

* There is no need to prepare assets separately for each device.
* Managing them in a small number of resolution groups is efficient.

***

**Recommended resolution standards for Apps in Toss**

**① Recommended logical resolution range**

Please choose one of the ranges below as your base resolution.

* **Vertical mini app:** About 360 × 640 to 420 × 740
* **Horizontal mini app:** About 640 × 360 to 740 × 420

We recommend choosing one base resolution within this range and handling differences between devices through scaling.

**② Recommended asset resolution standards**

It's best to prepare assets by group.

* **1x assets**: support for the base resolution
* **2x assets**: support for high-resolution devices

Add 3x assets selectively only when graphic quality is especially important.

{% hint style="info" %}
**Please be sure to check**

For most mini apps, a 1x + 2x setup is sufficient. Excessively splitting asset resolutions can lead to increased memory usage, longer loading times, and higher maintenance costs.
{% endhint %}

***

**Data-based reference**

This guide is organized based on **device resolution data collected in the actual Apps in Toss service environment**.

* About **70\~80%** of the total mini app traffic is concentrated in roughly **800\~900**horizontal, roughly **360\~420** vertical viewport resolution ranges.
* The rest of the traffic is a long tail spread across various resolutions.

So rather than handling every resolution individually, designing around representative resolution ranges is the most efficient approach.

***

**Test device guide**

that satisfy the following conditions, **3 to 5 representative devices**are enough.

* 2 to 3 devices with different screen ratios
* 1 device where Safe Area is heavily applied
* 1 device with a relatively small screen size

***

**Not recommended methods**

Please avoid the following methods.

* Using different logical resolutions by device model
* Calculating UI or coordinates based on actual pixel resolution
* Operating too many asset resolution groups beyond what is necessary
* Maintaining different UI layouts for each resolution

This approach can lead to UI breakage, letterboxing, and increased maintenance costs.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers-apps-in-toss.toss.im/landing-page/landing-page-en/design/consumer-ux-guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
