> 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 the UI/UX standards you must follow when designing and developing App in Toss mini apps in one place.

From how to set the brand logo, name, and colors to the dark pattern prevention policy, UX writing principles, how to use graphic resources, and resolution design standards, we guide you step by step. Before launching your service, carefully check and apply each item.

***

### Mini App Branding Guide

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

***

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

Show the brand logo, brand name, and brand color throughout Toss and App in Toss screens so users can clearly recognize the brand.

**Brand logo**

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

<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 criteria below when creating and applying the logo.

* The size should be a square 600×600px with sharp corners. Rounded corners cannot be used.
* The logo must have a background behind it, and use a background color that is visible in both light mode and dark mode.
* If the logo itself includes a background, like in the case of Anipang, place the image so it fills the entire 600×600px area.
* Upload the logo file to the App 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 shown 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`is acceptable, but `Toss`is not recommended.

* Enter the brand name in the App 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**

The brand color is used for entry points inside Toss, bridges, and buttons (when using the Toss Design System). The brand color settings criteria are as follows.

* If you already have a brand color, use it as is.
* If you do not have a brand color, choose the color used most often in the logo.
  * If it's hard to choose, [a color extraction site](https://lokeshdhakar.com/projects/color-thief/)can be used to extract a representative color from the logo image.
* If the brand color does not meet the color contrast criteria, it will be automatically corrected 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 that includes `#3182F6`for example, enter it like this.

***

**2. Navigation bar**

The navigation bar is an area fixed at the top of the screen, and App in Toss provides a dedicated component. Please refer to the guide below and configure the navigation bar according to the type of service being onboarded.

* Game guide
* Non-game guide

***

**3. Tab bar**

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

Even if you use your own UI, please implement the tab bar in the provided format. If it overlaps with the default bottom tab on the Toss main screen, users may become 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 criteria below when configuring the tab bar.

* You can use at least 2 tabs and up to 5 tabs.
* You must keep the floating format 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 meant to limit creativity; they are the minimum standards for providing users with a predictable and convenient experience.

To that end, Toss has set the minimum user experience standards that must be followed, and the examples below are critical usability errors that go beyond these standards and cannot be released as App in Toss services.

***

**1. When a bottom sheet appears as soon as the service is entered**

As soon as the user enters the service, instead of the screen they expected, **an intrusive promotional bottom sheet**is shown.\
This also includes bottom sheets that request 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 that moment, it breaks their immersion and makes them more likely to leave the service right away.

<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 blocking the previous screen appears after pressing the back button**

When the user tries to go back to the previous screen and browse other services, but unexpectedly **a bottom sheet prompting notification consent appears**this refers to.

Additional interrupts intentionally designed to prevent users from leaving can give the impression that their autonomy is being infringed upon. This experience can reduce 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 option to exit**

This refers to a structure where the user has no other choice but to select the CTA guided by the partner company. Such a design that does not allow refusal can feel forced to the user. As a result, it is highly likely to lead to dislike 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 an unexpected moment**

The user selected a menu to receive an item, but unexpectedly **an interstitial ad is shown**.

Ads that suddenly appear during the usage flow disrupt immersion and can leave a negative 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 you cannot predict the next action by looking only at the CTA button**

If the CTA simply repeats the value already explained on the screen, so that when the button is pressed **it is impossible to know which screen or action will follow**.

CTAs are a device 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 uneasiness makes them hesitate to click, which can ultimately lead to a lower conversion rate.

Also, if exaggerated or duplicated auxiliary descriptions are shown on top of 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

These guidelines are provided so you can use copy that applies Toss app's voice and tone.\
Please follow the guidelines below.

***

**1. Use the haeyo style**

All copy inside the product should use the 'haeyo' style.\
To create a consistent user experience, **apply the haeyo style to all copy 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. Speak actively**

Inside the product, as much as possible, **active sentences**should be used. Passive sentences are best used only in specific situations.

**Was 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 the '\~eot' ending**

<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>

**Rephrase with a different 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. Speak positively**

Inside the product, reduce negative communication as much as possible and use positive sentences. Example: can't, no (X) → if you do \~, you can (O)

**None → 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 messages**

<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 keep the label consistent. **Cancel**is not used because users may misunderstand it as canceling the task they are doing.
{% 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>

**Benefit eligibility notice**

**When the service can be used, but certain benefits cannot be received → positive sentence**\
Because users are scanning, they may easily understand it as meaning they cannot use the entire product.

<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, do not use overly formal honorifics such as 'would you like to?', 'are you?', or '\~kke'. It's best to use a casual and friendly tone as much as possible.

**Remove the '\~si' ending 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>

**'gyesida' → 'itta'**

<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>

**'yeojjuda' → 'confirm, 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>

**'kke' → 'ege'**

<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 after removing honorifics**

When asking for information from a user, the sentence can sound awkward if you mechanically remove '\~si'.\
**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. Do not use '{noun} + {noun}'**

**Expand Sino-Korean words**

You can expand 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's difficult to expand a Sino-Korean word**

Even just expanding it into the form '{noun} does {noun}' makes it feel 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 cases where passive sentences create clearer and more concise communication. We'll show you examples where passive voice makes for better sentences.

**⚠️ Service termination, expiration**

**Passive sentence**when written

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

**Do not use 'ends' for products where termination repeats periodically.**

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

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

```
<ul>
<li>We clearly explain the <strong>causal relationship</strong>. It can show that this is a result that follows from the user's action.</li>
</ul>
```

**⚠️ Reassure users**

**Passive sentence**when written

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

**⚠️ Use '돼요' instead of '되어요' (X) → (O)**

Considering the narrow space of mobile screens, please use only '돼요' instead of '되어요'.

</details>

<details>

<summary><strong>Cases where honorifics can be used</strong></summary>

In limited situations, you can use interrogative endings like 'are you?' or 'did you?'

**⚠️ When asking by using the user's context**

You can reduce the user's awkwardness by using honorific forms such as 'are you?' or 'did you?'

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

If Toss does not have clear information and the user needs to make a direct judgment, you can politely ask using honorifics.

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

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

</details>

<details>

<summary><strong>Cases where negative sentences can be used</strong></summary>

When you need to clearly inform users of something negative, it is okay to use negative sentences.

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

**Negative sentence**must be used

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

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

**Negative sentence**must be used

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

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

**⚠️ Reassure users**

**Negative sentence**must be used

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

</details>

***

### Graphics

We 안내 you on the graphic resources provided by Toss and how to use them properly.

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

All graphic assets of Toss and graphics generated through Toast are intellectual property of Viva Republica Co., Ltd., protected under the Copyright Act and related laws.

The provided graphics may be used only for service operation and promotion within the App in Toss partnership environment, and use in other services or media through reproduction, modification, distribution, transmission, public transmission, etc. is prohibited.
{% endhint %}

***

**Graphic resources provided by Toss**

**1. Icons & emojis**

Toss provides more than about 7,000 icons and emoji sets. When designing in App Builder and Figma, you can check the icon and emoji list. In App Builder, from 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, [refer to the App in Toss icon creation guide](https://www.notion.so/21b714bbfde780fb84bac2acfbb4a6b9?pvs=21)and create them according to the standards.

**\[Notes for use]**

* Please use icons at a size of 24\~40px on screen.
* Avoid combining two or more icons or emojis in parallel. Please use only one at a time.
* The graphic resources provided by Toss can only be used for UI design within the service screen and cannot be used in app information such as the app logo or thumbnail.

<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 with smartphone mockups, please use the files provided above as they are. Icons are provided in different sizes, so please do not crop them arbitrarily, correct their colors, or distort their shape.

<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. Before using the generated graphics on the actual screen, you must obtain approval from the Toss graphic design team. Approval usually takes place within one day.

**4. Others**

For 3D graphics or animations, only the resources included in the modules provided by Toss can be used.\
The scope of availability will be gradually expanded in the future.

***

**How to use graphics properly**

**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 a size that matches the information density.**

Use simple graphics small, and graphics with a lot 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.**

The more graphics of similar size there are, the more attention gets scattered.\
Use only one most essential graphic, and replace the rest with auxiliary 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. Please 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 are considered dark patterns.\
Please do not use these 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 effects.**

Meaningless illustrations, particles, and excessive gradients can make the screen complicated and interfere with 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. Please use graphics that accurately convey the situation.**

Using an exclamation mark icon when it is not an error,\
or using a loading animation when there is no need to wait, can make users 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 partners create graphics directly**

**1. Please maintain Toss-style consistency.**

Toss aims for a simple, clear, and clean digital graphic style.\
Hand-drawn feelings, lyrical painting styles, and cartoon-like expressions may 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 a clear and clean high resolution. If the resolution is low or there are many small effects like particles, 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. It must be visible well in both dark mode and light mode.**

Graphics used in the Toss app must take both dark mode and light mode into account.\
Colors that are too bright or too dark may not be visible well in a specific mode, so please use colors with a medium brightness.

<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. Please compose it so it fits the whole screen.**

Make sure the overall color and layout of the screen are balanced so the graphics do not stand out more than elements such as 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 orderly impression.**

Graphics play an important role in creating a sense of stability and trust in the service.\
Avoid overly monotone, hazy, and dull impressions, and design them to feel bright and tidy.

<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 should be the 기준 when developing App in Toss mini apps, and how to design and optimize screens. Along with recommended standards, it explains design directions that work stably across various device environments.

App in Toss mini apps run on devices with various resolutions and screen ratios. To reduce confusion caused by these environment differences, this guide proposes a 'base resolution-centered design' approach rather than device-specific 대응.

{% 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 App in Toss's actual traffic.
{% endhint %}

***

**App in Toss mini app full-screen design standards**

Full-screen implementation is required for App in Toss game mini apps. In a full-screen environment, the following must be considered.

* The content must completely fill the screen.
* There should be no webview margins or translucent areas left.
* The aspect ratio must not break or letterboxing (black margins) must not appear when the device rotates.
* 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 set one base resolution and respond through scaling.

***

**Two ways to look at resolution**

In App in Toss mini apps, we recommend thinking of resolution in the two ways below.

**① Logical Resolution**

This is the resolution used as the basis for UI placement, coordinate calculations, and game logic.

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

**② Asset Resolution**

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

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

***

**App in Toss recommended resolution standards**

**① Recommended logical resolution range**

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

* **Portrait mini app:** about 360 × 640 \~ 420 × 740
* **Landscape mini app:** about 640 × 360 \~ 740 × 420

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

**② Recommended asset resolution standards**

It is best to prepare assets by group.

* **1x assets**: base resolution support
* **2x assets**: high-resolution device support

Only add 3x assets selectively when graphic quality is especially important.

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

For most mini apps, a 1x + 2x setup is enough. Splitting asset resolutions too much can lead to increased memory usage, loading delays, and maintenance costs.
{% endhint %}

***

**Data-based notes**

This guide was organized based on **device resolution data collected from App in Toss's actual service environment**.

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

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

***

**Test device guide**

You do not need to test on every device. A **set of 3 to 5 representative devices**that meet the conditions below is enough.

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

***

**Not recommended approaches**

Please avoid the following approaches.

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

Such approaches can lead to UI breakage, letterboxing, and higher 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.
