feat. 환경 세팅
23
.env.dev
Normal file
@@ -0,0 +1,23 @@
|
||||
RUN_TYPE=dev
|
||||
BASE_DOMAIN='.onstove.com'
|
||||
|
||||
# URLS ##############################################################################
|
||||
BASE_API_URL='https://api-dev.onstove.com'
|
||||
STATIC_URL='https://static-pubcomm.gate8.com'
|
||||
|
||||
# STOVE #############################################################################
|
||||
# STOVE - API Url
|
||||
STOVE_API_URL=https://api-dev.onstove.com
|
||||
STOVE_M_API_URL=https://maintenance.gate8.com
|
||||
|
||||
# STOVE - GNB
|
||||
STOVE_GNB=https://js-cdn-dev.onstove.com/libs/common-gnb/latest/cp-header.js
|
||||
|
||||
# STOVE - Client Download
|
||||
STOVE_LAUNCHER_SCRIPT=https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js
|
||||
STOVE_CLIENT_DOWNLOAD_URL=https://sgs-gate8-dl.game.playstove.com/game/lcs/STOVESetup.exe
|
||||
STOVE_LOGIN_URL=https://accounts-dev.onstove.com/login
|
||||
|
||||
# Log Tracking ######################################################################
|
||||
# 81plug
|
||||
STOVE_81PLUG=https://dvudc0gwzz5wc.cloudfront.net/v3.1/dev/svc_81plug.min.js
|
||||
23
.env.live
Normal file
@@ -0,0 +1,23 @@
|
||||
RUN_TYPE=live
|
||||
BASE_DOMAIN='.onstove.com'
|
||||
|
||||
# URLS ##############################################################################
|
||||
BASE_API_URL='https://api.onstove.com'
|
||||
STATIC_URL='https://static-pubcomm.onstove.com'
|
||||
|
||||
# STOVE #############################################################################
|
||||
# STOVE - API Url
|
||||
STOVE_API_URL=https://api.onstove.com
|
||||
STOVE_M_API_URL=https://maintenance.onstove.com
|
||||
|
||||
# STOVE - GNB
|
||||
STOVE_GNB=https://js-cdn.onstove.com/libs/common-gnb/latest/cp-header.js
|
||||
|
||||
# STOVE - Client Download
|
||||
STOVE_LAUNCHER_SCRIPT=https://js-cdn.onstove.com/libs/stove-js-service/latest/launcher-pack.js
|
||||
STOVE_CLIENT_DOWNLOAD_URL=https://sgs-live-dl.game.playstove.com/game/lcs/STOVESetup.exe
|
||||
STOVE_LOGIN_URL=https://accounts.onstove.com/login
|
||||
|
||||
# Log Tracking ######################################################################
|
||||
# 81plug
|
||||
STOVE_81PLUG=https://dvudc0gwzz5wc.cloudfront.net/v3.1/live/svc_81plug.min.js
|
||||
23
.env.sandbox
Normal file
@@ -0,0 +1,23 @@
|
||||
RUN_TYPE=sandbox
|
||||
BASE_DOMAIN='.gate8.com'
|
||||
|
||||
# URLS ##############################################################################
|
||||
BASE_API_URL='https://api.gate8.com'
|
||||
STATIC_URL='https://static-pubcomm.gate8.com'
|
||||
|
||||
# STOVE #############################################################################
|
||||
# STOVE - API Url
|
||||
STOVE_API_URL=https://api.gate8.com
|
||||
STOVE_M_API_URL=https://maintenance.gate8.com
|
||||
|
||||
# STOVE - GNB
|
||||
STOVE_GNB=https://js-cdn.gate8.com/libs/common-gnb/latest/cp-header.js
|
||||
|
||||
# STOVE - Client Download
|
||||
STOVE_LAUNCHER_SCRIPT=https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js
|
||||
STOVE_CLIENT_DOWNLOAD_URL=https://sgs-gate8-dl.game.playstove.com/game/lcs/STOVESetup.exe
|
||||
STOVE_LOGIN_URL=https://accounts.gate8.com/login
|
||||
|
||||
# Log Tracking ######################################################################
|
||||
# 81plug
|
||||
STOVE_81PLUG=https://dvudc0gwzz5wc.cloudfront.net/v3.1/sandbox/svc_81plug.min.js
|
||||
17
.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# Nuxt dev/build outputs
|
||||
.output
|
||||
.data
|
||||
.nuxt
|
||||
.nitro
|
||||
.cache
|
||||
dist
|
||||
|
||||
# Node dependencies
|
||||
node_modules
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
138
README.md
@@ -1,93 +1,59 @@
|
||||
# web-template-fe
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- nuxt: 4.0.3
|
||||
- vue: 3.5.19
|
||||
- i18n: 10.0.6
|
||||
- pinia: 2.3.1
|
||||
- @pinia/nuxt: 0.6.1
|
||||
|
||||
## Getting started
|
||||
|
||||
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
||||
|
||||
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
||||
|
||||
## Add your files
|
||||
|
||||
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
|
||||
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
|
||||
## Folder Structure
|
||||
|
||||
```
|
||||
cd existing_repo
|
||||
git remote add origin https://git.sginfra.net/sgp-web-d/web-template-fe.git
|
||||
git branch -M main
|
||||
git push -uf origin main
|
||||
repo/
|
||||
├── app/
|
||||
│ ├── app.vue
|
||||
│ └── pages/
|
||||
│ └── [d1]/[d2]/[d3].vue # 최대 3뎁스 처리
|
||||
│
|
||||
├── layers/
|
||||
│ ├── assets/
|
||||
│ │ └── css/
|
||||
│ ├── components/
|
||||
│ │ ├── atoms/
|
||||
│ │ ├── layout/
|
||||
│ │ │ ├── default/
|
||||
│ │ │ └── StoveGnb.vue
|
||||
│ │ ├── molecules/
|
||||
│ │ └── templates/
|
||||
│ ├── composables/
|
||||
│ ├── layouts/
|
||||
│ ├── middleware/
|
||||
│ │ └── pageData.global.ts
|
||||
│ ├── nuxt.config.ts
|
||||
│ ├── plugins/
|
||||
│ ├── public/
|
||||
│ │ └── images/
|
||||
│ ├── registry/
|
||||
│ │ └── index.ts
|
||||
│ ├── server/
|
||||
│ │ ├── api/
|
||||
│ │ └── middleware/
|
||||
│ ├── stores/
|
||||
│ ├── templates/
|
||||
│ │ ├── GrVisual01/
|
||||
│ │ ├── GrVisual02/
|
||||
│ │ └── GrVisual03/
|
||||
│ ├── types/
|
||||
│ │ ├── api/
|
||||
│ │ └── utils/
|
||||
│ └── utils/
|
||||
├── node_modules/
|
||||
├── nuxt.config.ts
|
||||
├── package.json
|
||||
├── pnpm-lock.yaml
|
||||
├── README.md
|
||||
├── tailwind.config.ts
|
||||
└── tsconfig.json
|
||||
```
|
||||
|
||||
## Integrate with your tools
|
||||
|
||||
- [ ] [Set up project integrations](https://git.sginfra.net/sgp-web-d/web-template-fe/-/settings/integrations)
|
||||
|
||||
## Collaborate with your team
|
||||
|
||||
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
|
||||
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
|
||||
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
|
||||
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
|
||||
- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
|
||||
|
||||
## Test and Deploy
|
||||
|
||||
Use the built-in continuous integration in GitLab.
|
||||
|
||||
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
|
||||
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
|
||||
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
|
||||
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
|
||||
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
|
||||
|
||||
***
|
||||
|
||||
# Editing this README
|
||||
|
||||
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
|
||||
|
||||
## Suggestions for a good README
|
||||
|
||||
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
||||
|
||||
## Name
|
||||
Choose a self-explaining name for your project.
|
||||
|
||||
## Description
|
||||
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
||||
|
||||
## Badges
|
||||
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
||||
|
||||
## Visuals
|
||||
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
||||
|
||||
## Installation
|
||||
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
||||
|
||||
## Usage
|
||||
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
||||
|
||||
## Support
|
||||
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
||||
|
||||
## Roadmap
|
||||
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
||||
|
||||
## Contributing
|
||||
State if you are open to contributions and what your requirements are for accepting them.
|
||||
|
||||
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
||||
|
||||
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
||||
|
||||
## Authors and acknowledgment
|
||||
Show your appreciation to those who have contributed to the project.
|
||||
|
||||
## License
|
||||
For open source projects, say how it is licensed.
|
||||
|
||||
## Project status
|
||||
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
||||
|
||||
89
app/app.vue
Normal file
@@ -0,0 +1,89 @@
|
||||
<script setup lang="ts">
|
||||
import type { GameDataValue } from "#layers/types/api/gameData";
|
||||
|
||||
const { locale } = useI18n();
|
||||
const gameCode = useGetGameAlias();
|
||||
|
||||
const gameDataStore = useGameDataStore();
|
||||
const { data: gameData, error } = await useFetch<GameDataValue>(
|
||||
"/api/gameData"
|
||||
);
|
||||
|
||||
// Store에 데이터 저장
|
||||
watchEffect(() => {
|
||||
if (gameData.value) {
|
||||
gameDataStore.setGameData(gameData.value);
|
||||
}
|
||||
});
|
||||
|
||||
// 메타 태그 생성 헬퍼 함수
|
||||
const createMetaTags = (data: GameDataValue) => {
|
||||
const metaTag = data.meta_tag;
|
||||
|
||||
return [
|
||||
{
|
||||
name: "description",
|
||||
content: metaTag?.page_desc || "",
|
||||
},
|
||||
{
|
||||
property: "og:title",
|
||||
content: metaTag?.og_title || "",
|
||||
},
|
||||
{
|
||||
property: "og:description",
|
||||
content: metaTag?.og_desc || "",
|
||||
},
|
||||
{
|
||||
property: "og:image",
|
||||
content: metaTag?.og_image || "",
|
||||
},
|
||||
{
|
||||
property: "twitter:title",
|
||||
content: metaTag?.x_title || "",
|
||||
},
|
||||
{
|
||||
property: "twitter:image",
|
||||
content: metaTag?.x_image || "",
|
||||
},
|
||||
{
|
||||
property: "twitter:description",
|
||||
content: metaTag?.x_desc || "",
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
const createFaviconLinks = () => {
|
||||
return [
|
||||
{
|
||||
rel: "icon",
|
||||
type: "image/png",
|
||||
sizes: "32x32",
|
||||
href: gameData.value?.favicon_path || "",
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
watchEffect(() => {
|
||||
if (gameData.value && !error.value) {
|
||||
useHead(() => ({
|
||||
htmlAttrs: {
|
||||
"data-game-code": gameCode || "",
|
||||
lang: locale.value,
|
||||
},
|
||||
title: gameData.value?.meta_tag?.page_title || "",
|
||||
meta: createMetaTags(gameData.value as GameDataValue),
|
||||
link: createFaviconLinks(),
|
||||
}));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtLayout>
|
||||
<h1 class="sr-only">{{ gameDataStore.gameData?.game_name }}</h1>
|
||||
<NuxtPage />
|
||||
|
||||
<MoleculesLoadingFull />
|
||||
<MoleculesLoadingLocal />
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
40
app/pages/[d1]/[d2]/[d3].vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { usePageDataStore } from "#layers/stores/usePageDataStore";
|
||||
import Section from "#layers/components/molecules/Section.vue";
|
||||
|
||||
const pageDataStore = usePageDataStore();
|
||||
const { pageData } = storeToRefs(pageDataStore);
|
||||
|
||||
// const layout = pageData.value?.meta?.layout ?? "default";
|
||||
const layout = "default"; // 기본 레이아웃 사용
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
definePageMeta({
|
||||
layout: false, // 기본 레이아웃 비활성화
|
||||
});
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
watchEffect(() => {
|
||||
if (pageData.value?.meta_tag) {
|
||||
useSeoMeta({
|
||||
title: pageData.value.meta_tag.page_title ?? "",
|
||||
description: pageData.value.meta_tag.page_desc ?? "",
|
||||
ogTitle: pageData.value.meta_tag.og_title ?? "",
|
||||
ogDescription: pageData.value.meta_tag.og_desc ?? "",
|
||||
ogImage: pageData.value.meta_tag.og_image ?? "",
|
||||
twitterTitle: pageData.value.meta_tag.x_title ?? "",
|
||||
twitterImage: pageData.value.meta_tag.x_image ?? "",
|
||||
twitterDescription: pageData.value.meta_tag.x_desc ?? "",
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtLayout :name="layout">
|
||||
<ClientOnly>
|
||||
<Section :templates="pageData?.templates ?? []" />
|
||||
</ClientOnly>
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
40
app/pages/[d1]/[d2]/index.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { usePageDataStore } from "#layers/stores/usePageDataStore";
|
||||
import Section from "#layers/components/molecules/Section.vue";
|
||||
|
||||
const pageDataStore = usePageDataStore();
|
||||
const { pageData } = storeToRefs(pageDataStore);
|
||||
|
||||
// const layout = pageData.value?.meta?.layout ?? "default";
|
||||
const layout = "default"; // 기본 레이아웃 사용
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
definePageMeta({
|
||||
layout: false, // 기본 레이아웃 비활성화
|
||||
});
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
watchEffect(() => {
|
||||
if (pageData.value?.meta_tag) {
|
||||
useSeoMeta({
|
||||
title: pageData.value.meta_tag.page_title ?? "",
|
||||
description: pageData.value.meta_tag.page_desc ?? "",
|
||||
ogTitle: pageData.value.meta_tag.og_title ?? "",
|
||||
ogDescription: pageData.value.meta_tag.og_desc ?? "",
|
||||
ogImage: pageData.value.meta_tag.og_image ?? "",
|
||||
twitterTitle: pageData.value.meta_tag.x_title ?? "",
|
||||
twitterImage: pageData.value.meta_tag.x_image ?? "",
|
||||
twitterDescription: pageData.value.meta_tag.x_desc ?? "",
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtLayout :name="layout">
|
||||
<ClientOnly>
|
||||
<Section :templates="pageData?.templates ?? []" />
|
||||
</ClientOnly>
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
35
app/pages/[d1]/index.vue
Normal file
@@ -0,0 +1,35 @@
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { usePageDataStore } from "#layers/stores/usePageDataStore";
|
||||
import Section from "#layers/components/molecules/Section.vue";
|
||||
|
||||
const pageDataStore = usePageDataStore();
|
||||
const { pageData } = storeToRefs(pageDataStore);
|
||||
|
||||
// const layout = pageData.value?.meta?.layout ?? "default";
|
||||
const layout = "default"; // 기본 레이아웃 사용
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
watchEffect(() => {
|
||||
if (pageData.value?.meta_tag) {
|
||||
useSeoMeta({
|
||||
title: pageData.value.meta_tag.page_title ?? "",
|
||||
description: pageData.value.meta_tag.page_desc ?? "",
|
||||
ogTitle: pageData.value.meta_tag.og_title ?? "",
|
||||
ogDescription: pageData.value.meta_tag.og_desc ?? "",
|
||||
ogImage: pageData.value.meta_tag.og_image ?? "",
|
||||
twitterTitle: pageData.value.meta_tag.x_title ?? "",
|
||||
twitterImage: pageData.value.meta_tag.x_image ?? "",
|
||||
twitterDescription: pageData.value.meta_tag.x_desc ?? "",
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtLayout :name="layout">
|
||||
<ClientOnly>
|
||||
<Section :templates="pageData?.templates ?? []" />
|
||||
</ClientOnly>
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
40
app/pages/index.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<script setup lang="ts">
|
||||
import { storeToRefs } from "pinia";
|
||||
import { usePageDataStore } from "#layers/stores/usePageDataStore";
|
||||
import Section from "#layers/components/molecules/Section.vue";
|
||||
|
||||
const pageDataStore = usePageDataStore();
|
||||
const { pageData } = storeToRefs(pageDataStore);
|
||||
|
||||
// const layout = pageData.value?.meta?.layout ?? "default";
|
||||
const layout = "default"; // 기본 레이아웃 사용
|
||||
|
||||
// definePageMeta를 사용하여 레이아웃을 미리 설정
|
||||
definePageMeta({
|
||||
layout: false, // 기본 레이아웃 비활성화
|
||||
});
|
||||
|
||||
// SEO 메타 태그 설정 - pageData가 로드된 후에만 실행
|
||||
watchEffect(() => {
|
||||
if (pageData.value?.meta_tag) {
|
||||
useSeoMeta({
|
||||
title: pageData.value.meta_tag.page_title ?? "",
|
||||
description: pageData.value.meta_tag.page_desc ?? "",
|
||||
ogTitle: pageData.value.meta_tag.og_title ?? "",
|
||||
ogDescription: pageData.value.meta_tag.og_desc ?? "",
|
||||
ogImage: pageData.value.meta_tag.og_image ?? "",
|
||||
twitterTitle: pageData.value.meta_tag.x_title ?? "",
|
||||
twitterImage: pageData.value.meta_tag.x_image ?? "",
|
||||
twitterDescription: pageData.value.meta_tag.x_desc ?? "",
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<NuxtLayout :name="layout">
|
||||
<ClientOnly>
|
||||
<Section :templates="pageData?.templates ?? []" />
|
||||
</ClientOnly>
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
24
i18n.config.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
// import type { LocaleObject, NuxtI18nOptions } from "@nuxtjs/i18n";
|
||||
import type { NuxtI18nOptions } from "@nuxtjs/i18n";
|
||||
|
||||
// getI18n 함수가 NuxtI18nOptions 타입의 값을 반환하도록 명시적으로 타입을 지정합니다.
|
||||
const getI18n = (): NuxtI18nOptions => {
|
||||
return {
|
||||
strategy: "prefix",
|
||||
vueI18n: "custom",
|
||||
locales: ["ko"],
|
||||
defaultLocale: "ko",
|
||||
detectBrowserLanguage: {
|
||||
fallbackLocale: "ko",
|
||||
useCookie: false,
|
||||
redirectOn: "root",
|
||||
},
|
||||
compilation: {
|
||||
strictMessage: false,
|
||||
escapeHtml: false,
|
||||
},
|
||||
debug: false,
|
||||
};
|
||||
};
|
||||
|
||||
export { getI18n };
|
||||
3
layers/assets/css/app.css
Normal file
@@ -0,0 +1,3 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
50
layers/components/atoms/Button.vue
Normal file
@@ -0,0 +1,50 @@
|
||||
<script setup lang="ts">
|
||||
interface Props {
|
||||
size?: "large" | "medium" | "small" | "extra-small";
|
||||
disabled?: boolean;
|
||||
icon?: string;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
size: "medium",
|
||||
disabled: false,
|
||||
icon: "",
|
||||
});
|
||||
|
||||
// 크기별 스타일 클래스
|
||||
const sizeClasses = {
|
||||
large: "px-10 h-16 text-lg rounded-lg",
|
||||
medium: "px-10 h-14 text-base rounded-lg",
|
||||
small: "px-10 h-12 text-sm rounded-lg",
|
||||
"extra-small": "px-6 h-10 text-sm rounded",
|
||||
};
|
||||
|
||||
// 상태별 스타일 클래스
|
||||
const getStateClasses = (disabled: boolean) => {
|
||||
if (disabled) {
|
||||
return "bg-white/10 text-gray-400 cursor-not-allowed";
|
||||
}
|
||||
|
||||
return "bg-gray-700 text-white cursor-pointer";
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button
|
||||
:class="[
|
||||
'group relative inline-flex items-center font-medium transition-all duration-200 border border-gray-600/30 overflow-hidden',
|
||||
sizeClasses[size],
|
||||
getStateClasses(props.disabled),
|
||||
]"
|
||||
:disabled="disabled"
|
||||
>
|
||||
<span
|
||||
v-if="!disabled"
|
||||
class="absolute inset-0 bg-white opacity-0 group-hover:opacity-20 transition-opacity duration-200 rounded-inherit"
|
||||
></span>
|
||||
<span class="relative">
|
||||
<slot />
|
||||
<span v-if="icon" :class="['flex-shrink-0']" v-html="icon" />
|
||||
</span>
|
||||
</button>
|
||||
</template>
|
||||
41
layers/components/atoms/LanguageSwitcher.vue
Normal file
@@ -0,0 +1,41 @@
|
||||
<script setup lang="ts">
|
||||
const { locale } = useI18n();
|
||||
const switchLocalePath = useSwitchLocalePath();
|
||||
|
||||
const selectedLocale = ref(locale.value);
|
||||
|
||||
const switchLanguage = async () => {
|
||||
const path = switchLocalePath(selectedLocale.value);
|
||||
if (path) {
|
||||
await navigateTo(path);
|
||||
}
|
||||
console.log("Language:", locale.value);
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="language-switcher">
|
||||
<select v-model="selectedLocale" @change="switchLanguage">
|
||||
<option value="ko">한국어</option>
|
||||
<option value="en">English</option>
|
||||
</select>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.language-switcher {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.language-switcher select {
|
||||
padding: 8px 12px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
background: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.language-switcher select:hover {
|
||||
border-color: #999;
|
||||
}
|
||||
</style>
|
||||
61
layers/components/layout/StoveGnb.vue
Normal file
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div id="header-stove"></div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const runtimeConfig = useRuntimeConfig();
|
||||
const { locale } = useI18n();
|
||||
const { $i18n } = useNuxtApp();
|
||||
const { gameData } = useGameDataStore();
|
||||
|
||||
const stoveInflowPath = runtimeConfig.public.stoveInflowPath;
|
||||
const stoveGameNo = runtimeConfig.public.stoveGameNo;
|
||||
const gnbData = gameData?.stove_gnb;
|
||||
|
||||
const languageCodes = computed(() => {
|
||||
const availableLocales = ($i18n as any).availableLocales;
|
||||
if (Array.isArray(availableLocales)) {
|
||||
return availableLocales.map(
|
||||
(localeCode: any) => localeCode.code || localeCode
|
||||
);
|
||||
}
|
||||
return [locale.value];
|
||||
});
|
||||
|
||||
function loadGnb(locale: string) {
|
||||
locale = locale.toLowerCase();
|
||||
|
||||
const gnbOption = {
|
||||
wrapper: "#header-stove",
|
||||
isResponsive: true,
|
||||
skin: gnbData?.skin_type || "gnb-dark-mini",
|
||||
widget: {
|
||||
gameListAndService: false,
|
||||
languageSelect: false,
|
||||
notification: false,
|
||||
stoveDownload: false,
|
||||
},
|
||||
global: {
|
||||
userGds: true,
|
||||
defaultSelectedLanguage: locale || "en",
|
||||
languageCoverages: languageCodes.value,
|
||||
},
|
||||
loginMethod: {
|
||||
params: {
|
||||
inflow_path: stoveInflowPath,
|
||||
game_no: stoveGameNo,
|
||||
show_play_button: gnbData?.stove_install_button_visible || "Y",
|
||||
},
|
||||
redirectCurrentPage: true,
|
||||
windowTitle: undefined,
|
||||
},
|
||||
};
|
||||
|
||||
const cpHeader = new (window as any).cp.Header(gnbOption);
|
||||
cpHeader.render();
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
loadGnb(locale.value);
|
||||
});
|
||||
</script>
|
||||
3
layers/components/layout/default/Footer.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template>
|
||||
<footer class="border-t p-4">Global Footer</footer>
|
||||
</template>
|
||||
185
layers/components/layout/default/Header.vue
Normal file
@@ -0,0 +1,185 @@
|
||||
<script setup lang="ts">
|
||||
const gameDataStore = useGameDataStore();
|
||||
const gameData = computed(() => gameDataStore.gameData);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<header class="bg-gray-900 text-white relative z-50">
|
||||
<LayoutStoveGnb />
|
||||
<div class="px-[40px] h-16 flex items-center">
|
||||
<!-- 로고 -->
|
||||
<div class="mr-[40px]">
|
||||
<img :src="gameData?.gnb?.bi_path" :alt="gameData?.game_name" />
|
||||
</div>
|
||||
|
||||
<!-- 메인 네비게이션 -->
|
||||
<nav class="flex items-center space-x-[32px]">
|
||||
<!-- 동적 메뉴 (비활성화) -->
|
||||
<template v-if="false">
|
||||
<div
|
||||
v-for="menuList in gameData?.gnb?.menus"
|
||||
:key="menuList.path_code"
|
||||
>
|
||||
<a
|
||||
v-if="menuList.depth === 1"
|
||||
:href="menuList.url_path"
|
||||
:target="menuList.link_target"
|
||||
class="hover:text-yellow-400 transition-colors"
|
||||
>
|
||||
{{ menuList.menu_name }}
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- 고객지원 (2단계 드롭다운) -->
|
||||
<div class="relative group">
|
||||
<button
|
||||
class="flex items-center space-x-1 hover:text-yellow-400 transition-colors"
|
||||
>
|
||||
<span>고객지원</span>
|
||||
<svg
|
||||
class="w-4 h-4"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M19 9l-7 7-7-7"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<!-- 2단계 드롭다운 메뉴 -->
|
||||
<div
|
||||
class="absolute top-full left-0 mt-2 w-48 bg-gray-800 rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50"
|
||||
>
|
||||
<div class="py-2">
|
||||
<a
|
||||
href="#"
|
||||
class="block px-4 py-2 hover:bg-gray-700 hover:text-yellow-400 transition-colors"
|
||||
>다운로드</a
|
||||
>
|
||||
<a
|
||||
href="#"
|
||||
class="block px-4 py-2 hover:bg-gray-700 hover:text-yellow-400 transition-colors bg-gray-700 text-yellow-400"
|
||||
>쿠폰 등록</a
|
||||
>
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center justify-between px-4 py-2 hover:bg-gray-700 hover:text-yellow-400 transition-colors"
|
||||
>
|
||||
<span>고객센터</span>
|
||||
<svg
|
||||
class="w-4 h-4"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
||||
></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center justify-between px-4 py-2 hover:bg-gray-700 hover:text-yellow-400 transition-colors"
|
||||
>
|
||||
<span>확률 정보</span>
|
||||
<svg
|
||||
class="w-4 h-4"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"
|
||||
></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
class="block px-4 py-2 hover:bg-gray-700 hover:text-yellow-400 transition-colors"
|
||||
>보안 강화 캠페인</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 기부 -->
|
||||
<a href="#" class="hover:text-yellow-400 transition-colors">기부</a>
|
||||
|
||||
<!-- 구분선 -->
|
||||
<div class="w-px h-6 bg-gray-600"></div>
|
||||
|
||||
<!-- 이벤트 -->
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center space-x-1 text-pink-400 hover:text-pink-300 transition-colors"
|
||||
>
|
||||
<span class="text-pink-400">•</span>
|
||||
<span>이벤트</span>
|
||||
<span class="text-pink-400">•</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
<!-- 게임 시작 버튼 (2단계 드롭다운) -->
|
||||
<div class="relative group ml-auto">
|
||||
<button
|
||||
class="bg-amber-600 hover:bg-amber-700 text-white px-6 py-3 rounded-lg font-medium transition-colors"
|
||||
>
|
||||
게임 시작
|
||||
</button>
|
||||
|
||||
<!-- 2단계 드롭다운 메뉴 -->
|
||||
<div
|
||||
class="absolute top-full right-0 mt-2 w-64 bg-gray-800 rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50"
|
||||
>
|
||||
<div class="py-2">
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center space-x-3 px-4 py-3 hover:bg-gray-700 transition-colors"
|
||||
>
|
||||
<div
|
||||
class="w-8 h-8 bg-orange-500 rounded flex items-center justify-center"
|
||||
>
|
||||
<span class="text-white font-bold text-sm">S</span>
|
||||
</div>
|
||||
<span>PC 버전 다운로드</span>
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center space-x-3 px-4 py-3 hover:bg-gray-700 transition-colors"
|
||||
>
|
||||
<svg class="w-8 h-8" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path
|
||||
d="M3,20.5V3.5C3,2.91 3.34,2.39 3.84,2.15L13.69,12L3.84,21.85C3.34,21.6 3,21.09 3,20.5M16.81,15.12L6.05,21.34L14.54,12.85L16.81,15.12M20.16,10.81C20.5,11.08 20.75,11.5 20.75,12C20.75,12.5 20.53,12.9 20.18,13.18L17.89,14.5L15.39,12L17.89,9.5L20.16,10.81M6.05,2.66L16.81,8.88L14.54,11.15L6.05,2.66Z"
|
||||
/>
|
||||
</svg>
|
||||
<span>Google Store</span>
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
class="flex items-center space-x-3 px-4 py-3 hover:bg-gray-700 transition-colors"
|
||||
>
|
||||
<svg class="w-8 h-8" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path
|
||||
d="M18.71,19.5C17.88,20.74 17,21.95 15.66,21.97C14.32,22 13.89,21.18 12.37,21.18C10.84,21.18 10.37,21.95 9.1,22C7.79,22.05 6.8,20.68 5.96,19.47C4.25,17 2.94,12.45 4.7,9.39C5.57,7.87 7.13,6.91 8.82,6.88C10.1,6.86 11.32,7.75 12.11,7.75C12.89,7.75 14.37,6.68 15.92,6.84C16.57,6.87 18.39,7.1 19.56,8.82C19.47,8.88 17.39,10.1 17.41,12.63C17.44,15.65 20.06,16.66 20.09,16.67C20.06,16.74 19.67,18.11 18.71,19.5M13,3.5C13.73,2.67 14.94,2.04 15.94,2C16.07,3.17 15.6,4.35 14.9,5.19C14.21,6.04 13.07,6.7 11.95,6.61C11.8,5.46 12.36,4.26 13,3.5Z"
|
||||
/>
|
||||
</svg>
|
||||
<span>App Store</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</template>
|
||||
29
layers/components/molecules/Section.vue
Normal file
@@ -0,0 +1,29 @@
|
||||
<script setup lang="ts">
|
||||
import { useTemplateRegistry } from "#layers/composables/useTemplateRegistry";
|
||||
import type { PageDataTemplate } from "#layers/types/api/pageData";
|
||||
|
||||
const props = defineProps<{ templates: PageDataTemplate[] }>();
|
||||
const registry = useTemplateRegistry() as Record<string, { component: any }>;
|
||||
|
||||
const isShowTemplate = (template: PageDataTemplate) => {
|
||||
return template?.components && Object.keys(template.components).length > 0;
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<template
|
||||
v-for="(template, index) in props.templates"
|
||||
:key="template.template_code ?? index"
|
||||
>
|
||||
<section v-if="isShowTemplate(template)" class="relative">
|
||||
<TemplatesBackground
|
||||
v-if="template.components?.background"
|
||||
:component-data="template.components?.background"
|
||||
/>
|
||||
<component
|
||||
:is="registry[template.template_code]?.component"
|
||||
:components="template.components"
|
||||
/>
|
||||
</section>
|
||||
</template>
|
||||
</template>
|
||||
45
layers/components/molecules/loading/Full.vue
Normal file
@@ -0,0 +1,45 @@
|
||||
<script setup lang="ts">
|
||||
import { useLoadingStore } from "#layers/stores/useLoadingStore";
|
||||
|
||||
const loadingStore = useLoadingStore();
|
||||
const { fullLoading } = storeToRefs(loadingStore);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Transition
|
||||
enter-active-class="transition-opacity duration-300 ease-in-out"
|
||||
enter-from-class="opacity-0"
|
||||
enter-to-class="opacity-100"
|
||||
leave-active-class="transition-opacity duration-300 ease-in-out"
|
||||
leave-from-class="opacity-100"
|
||||
leave-to-class="opacity-0"
|
||||
>
|
||||
<div
|
||||
v-if="fullLoading"
|
||||
class="fixed inset-0 bg-black/80 flex items-center justify-center z-[9999]"
|
||||
>
|
||||
<!-- 메인 스피너 -->
|
||||
<div class="relative w-16 h-16">
|
||||
<!-- 외부 링 -->
|
||||
<div
|
||||
class="absolute inset-0 border-4 border-transparent border-t-blue-500 rounded-full animate-spin"
|
||||
></div>
|
||||
<!-- 중간 링 -->
|
||||
<div
|
||||
class="absolute inset-1 border-4 border-transparent border-t-purple-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.3s"
|
||||
></div>
|
||||
<!-- 내부 링 -->
|
||||
<div
|
||||
class="absolute inset-2 border-4 border-transparent border-t-cyan-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.6s"
|
||||
></div>
|
||||
<!-- 중심 링 -->
|
||||
<div
|
||||
class="absolute inset-3 border-4 border-transparent border-t-emerald-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.9s"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</Transition>
|
||||
</template>
|
||||
49
layers/components/molecules/loading/Local.vue
Normal file
@@ -0,0 +1,49 @@
|
||||
<script setup lang="ts">
|
||||
import { useLoadingStore } from "#layers/stores/useLoadingStore";
|
||||
|
||||
const loadingStore = useLoadingStore();
|
||||
const { localLoadings } = storeToRefs(loadingStore);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<template v-for="[localId, loadingInfo] in localLoadings" :key="localId">
|
||||
<Teleport v-if="canTeleport(localId)" :to="`#${localId}`">
|
||||
<Transition
|
||||
enter-active-class="transition-opacity duration-300 ease-in-out"
|
||||
enter-from-class="opacity-0"
|
||||
enter-to-class="opacity-100"
|
||||
leave-active-class="transition-opacity duration-300 ease-in-out"
|
||||
leave-from-class="opacity-100"
|
||||
leave-to-class="opacity-0"
|
||||
>
|
||||
<div
|
||||
v-if="loadingInfo.active"
|
||||
class="fixed inset-0 bg-black/80 flex items-center justify-center z-[9999]"
|
||||
>
|
||||
<!-- 메인 스피너 -->
|
||||
<div class="relative w-16 h-16">
|
||||
<!-- 외부 링 -->
|
||||
<div
|
||||
class="absolute inset-0 border-4 border-transparent border-t-blue-500 rounded-full animate-spin"
|
||||
></div>
|
||||
<!-- 중간 링 -->
|
||||
<div
|
||||
class="absolute inset-1 border-4 border-transparent border-t-purple-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.3s"
|
||||
></div>
|
||||
<!-- 내부 링 -->
|
||||
<div
|
||||
class="absolute inset-2 border-4 border-transparent border-t-cyan-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.6s"
|
||||
></div>
|
||||
<!-- 중심 링 -->
|
||||
<div
|
||||
class="absolute inset-3 border-4 border-transparent border-t-emerald-500 rounded-full animate-spin"
|
||||
style="animation-delay: -0.9s"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</Transition>
|
||||
</Teleport>
|
||||
</template>
|
||||
</template>
|
||||
44
layers/components/templates/Background.vue
Normal file
@@ -0,0 +1,44 @@
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
getResponsiveResolvedSrc,
|
||||
getResponsiveClass,
|
||||
} from "#layers/utils/dataUtil";
|
||||
import type { PageDataComponent } from "#layers/types/api/pageData";
|
||||
|
||||
const props = defineProps<{ componentData: PageDataComponent }>();
|
||||
|
||||
const assetType = computed(() => {
|
||||
return props.componentData?.component_type;
|
||||
});
|
||||
const assetPath = computed(() => {
|
||||
// [TODO] 이미지 그룹 여러개 처리
|
||||
// [TODO] comm 처리
|
||||
return props.componentData?.resources[0]["groups"][0]?.img_path?.comm;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="absolute inset-0 w-full h-full">
|
||||
<!-- 이미지 타입-->
|
||||
<div
|
||||
v-if="assetType === 'IMG'"
|
||||
class="absolute inset-0 w-full h-full bg-cover bg-center bg-no-repeat"
|
||||
:class="getResponsiveClass()"
|
||||
:style="getResponsiveResolvedSrc(assetPath, 'bg')"
|
||||
></div>
|
||||
|
||||
<!-- 비디오 타입 -->
|
||||
<video
|
||||
v-else-if="assetType === 'VIDEO'"
|
||||
class="absolute inset-0 w-full h-full object-cover"
|
||||
:poster="assetPoster"
|
||||
autoplay
|
||||
muted
|
||||
loop
|
||||
playsinline
|
||||
>
|
||||
<source :src="assetPath" type="video/mp4" />
|
||||
<source :src="assetPath" type="video/webm" />
|
||||
</video>
|
||||
</div>
|
||||
</template>
|
||||
40
layers/components/templates/Description.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<script setup lang="ts">
|
||||
import { getResponsiveResolvedSrc } from "#layers/utils/dataUtil";
|
||||
import type { PageDataComponent } from "#layers/types/api/pageData";
|
||||
|
||||
const props = defineProps<{ componentData: PageDataComponent }>();
|
||||
|
||||
const displayText = computed(() => {
|
||||
return (
|
||||
props.componentData?.resources[0]?.["groups"]?.[0]?.display?.ko?.text || ""
|
||||
);
|
||||
});
|
||||
const assetPath = computed(() => {
|
||||
// [TODO] 이미지 그룹 여러개 처리
|
||||
// [TODO] 언어 처리
|
||||
return props.componentData?.resources[0]?.["groups"]?.[0]?.img_path?.ko;
|
||||
});
|
||||
const imageSrcs = computed(() => {
|
||||
if (!assetPath.value?.path_mo || !assetPath.value?.path_pc) {
|
||||
return { mobileSrc: "", pcSrc: "" };
|
||||
}
|
||||
return getResponsiveResolvedSrc(assetPath.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<img
|
||||
:src="imageSrcs.mobileSrc"
|
||||
:alt="displayText"
|
||||
class="w-full sm:hidden"
|
||||
/>
|
||||
|
||||
<!-- PC 이미지 (sm 이상) -->
|
||||
<img
|
||||
:src="imageSrcs.pcSrc"
|
||||
:alt="displayText"
|
||||
class="w-full hidden sm:block"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
40
layers/components/templates/MainTitle.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<script setup lang="ts">
|
||||
import { getResponsiveResolvedSrc } from "#layers/utils/dataUtil";
|
||||
import type { PageDataComponent } from "#layers/types/api/pageData";
|
||||
|
||||
const props = defineProps<{ componentData: PageDataComponent }>();
|
||||
|
||||
const displayText = computed(() => {
|
||||
return (
|
||||
props.componentData?.resources[0]?.["groups"]?.[0]?.display?.ko?.text || ""
|
||||
);
|
||||
});
|
||||
const assetPath = computed(() => {
|
||||
// [TODO] 이미지 그룹 여러개 처리
|
||||
// [TODO] 언어 처리
|
||||
return props.componentData?.resources[0]?.["groups"]?.[0]?.img_path?.ko;
|
||||
});
|
||||
const imageSrcs = computed(() => {
|
||||
if (!assetPath.value?.path_mo || !assetPath.value?.path_pc) {
|
||||
return { mobileSrc: "", pcSrc: "" };
|
||||
}
|
||||
return getResponsiveResolvedSrc(assetPath.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<h2>
|
||||
<img
|
||||
:src="imageSrcs.mobileSrc"
|
||||
:alt="displayText"
|
||||
class="w-full sm:hidden"
|
||||
/>
|
||||
|
||||
<!-- PC 이미지 (sm 이상) -->
|
||||
<img
|
||||
:src="imageSrcs.pcSrc"
|
||||
:alt="displayText"
|
||||
class="w-full hidden sm:block"
|
||||
/>
|
||||
</h2>
|
||||
</template>
|
||||
27
layers/components/templates/VideoPlay.vue
Normal file
@@ -0,0 +1,27 @@
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
getResponsiveResolvedSrc,
|
||||
getResponsiveClass,
|
||||
} from "#layers/utils/dataUtil";
|
||||
import type { PageDataComponent } from "#layers/types/api/pageData";
|
||||
|
||||
const props = defineProps<{ componentData: PageDataComponent }>();
|
||||
|
||||
const assetPath = computed(() => {
|
||||
// [TODO] 이미지 그룹 여러개 처리
|
||||
// [TODO] comm 처리
|
||||
return props.componentData?.resources[0]["groups"][0]?.img_path?.comm;
|
||||
});
|
||||
|
||||
console.log("assetPath:", props.componentData);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button
|
||||
class="bg-cover bg-center bg-no-repeat w-[66px] h-[66px] lg:w-[100px] lg:h-[100px]"
|
||||
:class="getResponsiveClass()"
|
||||
:style="getResponsiveResolvedSrc(assetPath, 'bg')"
|
||||
>
|
||||
<span class="sr-only">videoPlay</span>
|
||||
</button>
|
||||
</template>
|
||||
53
layers/composables/useGetGameAlias.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { getHeader } from "h3";
|
||||
import { useRuntimeConfig, useRequestEvent } from "nuxt/app";
|
||||
|
||||
export const useGetGameAlias = () => {
|
||||
const config = useRuntimeConfig();
|
||||
const baseDomain = (config.public.baseDomain || ".onstove.com") as string;
|
||||
|
||||
// 서버 사이드에서 실행되는 경우
|
||||
if (!import.meta.client) {
|
||||
try {
|
||||
const event = useRequestEvent();
|
||||
|
||||
if (event) {
|
||||
// 미들웨어에서 설정한 gameAlias가 있다면 우선 사용
|
||||
if (event.context.gameAlias) {
|
||||
return event.context.gameAlias;
|
||||
}
|
||||
|
||||
const host = getHeader(event, "host") || "";
|
||||
const isGameAliasExtractable = host.includes(baseDomain);
|
||||
|
||||
if (isGameAliasExtractable) {
|
||||
const subdomain = host.split(".")[0];
|
||||
|
||||
if (subdomain && subdomain !== "www") {
|
||||
return subdomain;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("useGetGameAlias server error: ", error);
|
||||
}
|
||||
}
|
||||
|
||||
// 클라이언트 사이드에서 실행되는 경우
|
||||
if (import.meta.client) {
|
||||
try {
|
||||
const host = window.location.host;
|
||||
const isGameAliasExtractable = host.includes(baseDomain);
|
||||
|
||||
if (isGameAliasExtractable) {
|
||||
const subdomain = host.split(".")[0];
|
||||
|
||||
if (subdomain && subdomain !== "www") {
|
||||
return subdomain;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("useGetGameAlias client error: ", error);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
};
|
||||
39
layers/composables/usePathResolver.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
export const usePathResolver = () => {
|
||||
const getPathAfterLanguage = (url?: string): string => {
|
||||
// URL이 제공되지 않으면 현재 URL 사용
|
||||
const targetUrl =
|
||||
url || (import.meta.client ? window.location.pathname : "");
|
||||
|
||||
// URL에서 언어 코드 패턴을 찾아서 그 뒤의 경로를 추출
|
||||
// 예: /ko/about/story -> /about/story
|
||||
// 예: /en/test/page -> /test/page
|
||||
// 예: /ko -> "" (빈 문자열)
|
||||
const languagePattern = /^\/[a-z]{2}\/(.+)$/;
|
||||
const match = targetUrl.match(languagePattern);
|
||||
|
||||
if (match && match[1]) {
|
||||
return `/${match[1]}`;
|
||||
}
|
||||
|
||||
// 언어 코드만 있고 뒤에 아무것도 없는 경우 (예: /ko, /en)
|
||||
const languageOnlyPattern = /^\/[a-z]{2}$/;
|
||||
if (languageOnlyPattern.test(targetUrl)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 언어 코드가 없는 경우 원본 경로 그대로 반환 (이미 /로 시작)
|
||||
return targetUrl;
|
||||
};
|
||||
|
||||
const getCurrentPath = (): string => {
|
||||
if (import.meta.client) {
|
||||
return getPathAfterLanguage();
|
||||
}
|
||||
return "";
|
||||
};
|
||||
|
||||
return {
|
||||
getPathAfterLanguage,
|
||||
getCurrentPath,
|
||||
};
|
||||
};
|
||||
2
layers/composables/useTemplateRegistry.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
import { templateRegistry } from "#layers/registry";
|
||||
export const useTemplateRegistry = () => templateRegistry;
|
||||
11
layers/layouts/default.vue
Normal file
@@ -0,0 +1,11 @@
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<LayoutDefaultHeader />
|
||||
<main>
|
||||
<slot></slot>
|
||||
</main>
|
||||
<LayoutDefaultFooter />
|
||||
</div>
|
||||
</template>
|
||||
13
layers/layouts/promotion.vue
Normal file
@@ -0,0 +1,13 @@
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<template>
|
||||
<div class="promotion-wrap">
|
||||
<slot></slot>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.promo-wrap {
|
||||
background-color: tan;
|
||||
}
|
||||
</style>
|
||||
44
layers/middleware/pageData.global.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { commonFetch } from "#layers/utils/apiUtil";
|
||||
import { usePageDataStore } from "#layers/stores/usePageDataStore";
|
||||
import { useGetGameAlias } from "#layers/composables/useGetGameAlias";
|
||||
import { usePathResolver } from "#layers/composables/usePathResolver";
|
||||
import type { PageDataResponse } from "#layers/types/api/pageData";
|
||||
|
||||
export default defineNuxtRouteMiddleware(async (to, from) => {
|
||||
if (import.meta.server) {
|
||||
return;
|
||||
}
|
||||
|
||||
const config = useRuntimeConfig();
|
||||
const store = usePageDataStore();
|
||||
const gameAlias = useGetGameAlias();
|
||||
const { getPathAfterLanguage } = usePathResolver();
|
||||
|
||||
const stoveApiBaseUrl = config.public.stoveApiUrl;
|
||||
const apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/page`;
|
||||
|
||||
try {
|
||||
const pageUrl = getPathAfterLanguage(to.path);
|
||||
const queryParams: Record<string, string> = {
|
||||
game_alias: gameAlias,
|
||||
lang_code: "ko",
|
||||
page_url: pageUrl,
|
||||
_t: Date.now().toString(), // 캐시 무효화를 위한 타임스탬프
|
||||
};
|
||||
|
||||
const response = (await commonFetch("GET", apiUrl, {
|
||||
query: queryParams,
|
||||
loading: true,
|
||||
})) as PageDataResponse | null;
|
||||
|
||||
if (response?.code === 0 && "value" in response) {
|
||||
const cleanData = JSON.parse(JSON.stringify(response.value));
|
||||
store.setPageData(cleanData);
|
||||
} else {
|
||||
store.clearPageData();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
store.clearPageData();
|
||||
}
|
||||
});
|
||||
8
layers/nuxt.config.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { defineNuxtConfig } from "nuxt/config";
|
||||
|
||||
export default defineNuxtConfig({
|
||||
imports: {
|
||||
dirs: ["composables", "stores", "types", "middleware", "server", "utils"],
|
||||
global: true,
|
||||
},
|
||||
});
|
||||
10
layers/plugins/global-caller-info.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export default defineNuxtPlugin(() => {
|
||||
const runtimeConfig = useRuntimeConfig();
|
||||
const callerInfoStore = useCallerInfoStore();
|
||||
|
||||
const callerId = `${runtimeConfig.public.stoveGameId}`;
|
||||
const callerDetail = `${useCookie("sgs_da_uuid").value || ""}`;
|
||||
|
||||
callerInfoStore.setCallerId(callerId);
|
||||
callerInfoStore.setCallerDetail(callerDetail);
|
||||
});
|
||||
BIN
layers/public/images/GrVisual01/common/bg.jpg
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
BIN
layers/public/images/GrVisual01/common/bg_m.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
layers/public/images/GrVisual01/ko/title_main.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
layers/public/images/GrVisual01/ko/title_main_m.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
layers/public/images/GrVisual01/ko/title_sub.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
layers/public/images/GrVisual01/ko/title_sub_m.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
layers/public/images/GrVisual01/zh-tw/title_main.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
layers/public/images/GrVisual01/zh-tw/title_main_m.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
layers/public/images/GrVisual01/zh-tw/title_sub.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
layers/public/images/GrVisual01/zh-tw/title_sub_m.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
20
layers/public/images/common/dark/btn_system_SNS.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3320_3982_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3320_3982)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.75 16C30.6789 16 29 17.6789 29 19.75C29 20.0465 29.0344 20.335 29.0995 20.6117C29.06 20.6295 29.0213 20.6502 28.9836 20.6737L24.9836 23.1737C24.9305 23.207 24.8816 23.2444 24.8373 23.2855C24.1643 22.6439 23.2532 22.25 22.25 22.25C20.1789 22.25 18.5 23.9289 18.5 26C18.5 28.0711 20.1789 29.75 22.25 29.75C23.2532 29.75 24.1643 29.3561 24.8373 28.7145C24.8816 28.7556 24.9305 28.793 24.9836 28.8263L28.9836 31.3263C28.996 31.334 29.0086 31.3415 29.0212 31.3486C29.0072 31.4805 29 31.6144 29 31.75C29 33.8211 30.6789 35.5 32.75 35.5C34.8211 35.5 36.5 33.8211 36.5 31.75C36.5 29.6789 34.8211 28 32.75 28C31.521 28 30.43 28.5912 29.7461 29.5048L26.0164 27.1737C25.9596 27.1382 25.9005 27.1093 25.8401 27.0867C25.9441 26.7428 26 26.3779 26 26C26 25.6221 25.9441 25.2572 25.8401 24.9133C25.9005 24.8907 25.9596 24.8618 26.0164 24.8263L30.0164 22.3263L30.0218 22.3229C30.7056 23.0476 31.675 23.5 32.75 23.5C34.8211 23.5 36.5 21.8211 36.5 19.75C36.5 17.6789 34.8211 16 32.75 16ZM31 19.75C31 18.7835 31.7835 18 32.75 18C33.7165 18 34.5 18.7835 34.5 19.75C34.5 20.7165 33.7165 21.5 32.75 21.5C31.7835 21.5 31 20.7165 31 19.75ZM22.25 24.25C21.2835 24.25 20.5 25.0335 20.5 26C20.5 26.9665 21.2835 27.75 22.25 27.75C23.2165 27.75 24 26.9665 24 26C24 25.0335 23.2165 24.25 22.25 24.25ZM32.75 30C31.7835 30 31 30.7835 31 31.75C31 32.7165 31.7835 33.5 32.75 33.5C33.7165 33.5 34.5 32.7165 34.5 31.75C34.5 30.7835 33.7165 30 32.75 30Z" fill="white" fill-opacity="0.5"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3320_3982" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3320_3982"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3320_3982" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3320_3982_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
21
layers/public/images/common/dark/btn_system_SNS_hover.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3320_3983_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3320_3983)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.75 16C30.6789 16 29 17.6789 29 19.75C29 20.0465 29.0344 20.335 29.0995 20.6117C29.06 20.6295 29.0213 20.6502 28.9836 20.6737L24.9836 23.1737C24.9305 23.207 24.8816 23.2444 24.8373 23.2855C24.1643 22.6439 23.2532 22.25 22.25 22.25C20.1789 22.25 18.5 23.9289 18.5 26C18.5 28.0711 20.1789 29.75 22.25 29.75C23.2532 29.75 24.1643 29.3561 24.8373 28.7145C24.8816 28.7556 24.9305 28.793 24.9836 28.8263L28.9836 31.3263C28.996 31.334 29.0086 31.3415 29.0212 31.3486C29.0072 31.4805 29 31.6144 29 31.75C29 33.8211 30.6789 35.5 32.75 35.5C34.8211 35.5 36.5 33.8211 36.5 31.75C36.5 29.6789 34.8211 28 32.75 28C31.521 28 30.43 28.5912 29.7461 29.5048L26.0164 27.1737C25.9596 27.1382 25.9005 27.1093 25.8401 27.0867C25.9441 26.7428 26 26.3779 26 26C26 25.6221 25.9441 25.2572 25.8401 24.9133C25.9005 24.8907 25.9596 24.8618 26.0164 24.8263L30.0164 22.3263L30.0218 22.3229C30.7056 23.0476 31.675 23.5 32.75 23.5C34.8211 23.5 36.5 21.8211 36.5 19.75C36.5 17.6789 34.8211 16 32.75 16ZM31 19.75C31 18.7835 31.7835 18 32.75 18C33.7165 18 34.5 18.7835 34.5 19.75C34.5 20.7165 33.7165 21.5 32.75 21.5C31.7835 21.5 31 20.7165 31 19.75ZM22.25 24.25C21.2835 24.25 20.5 25.0335 20.5 26C20.5 26.9665 21.2835 27.75 22.25 27.75C23.2165 27.75 24 26.9665 24 26C24 25.0335 23.2165 24.25 22.25 24.25ZM32.75 30C31.7835 30 31 30.7835 31 31.75C31 32.7165 31.7835 33.5 32.75 33.5C33.7165 33.5 34.5 32.7165 34.5 31.75C34.5 30.7835 33.7165 30 32.75 30Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3320_3983" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3320_3983"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3320_3983" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3320_3983_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
20
layers/public/images/common/dark/btn_system_chevron_next.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15076_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15076)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15076" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15076"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15076" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15076_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15145_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15145)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white" fill-opacity="0.2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15145" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15145"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15145" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15145_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15078_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15078)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15078" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15078"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15078" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15078_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
20
layers/public/images/common/dark/btn_system_chevron_prev.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15075_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15075)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15075" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15075"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15075" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15075_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15144_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15144)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white" fill-opacity="0.2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15144" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15144"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15144" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15144_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15077_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15077)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15077" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15077"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15077" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15077_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
10
layers/public/images/common/dark/btn_system_play.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="0" y="0" width="100" height="100"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(5px);clip-path:url(#bgblur_0_3299_15025_clip_path);height:100%;width:100%"></div></foreignObject><g data-figma-bg-blur-radius="10">
|
||||
<circle cx="50" cy="50" r="40" fill="black" fill-opacity="0.5"/>
|
||||
<circle cx="50" cy="50" r="39.5" stroke="white" stroke-opacity="0.5"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.4839 59.0812C46.7639 60.0629 45.079 60.9852 43.4291 61.8405C42.4954 62.3239 41.4072 61.6545 41.337 60.5612C41.2106 58.62 41.1193 56.6119 41.0632 54.5443C41.0211 53.0568 41 51.5396 41 50C41 48.4604 41.0211 46.9506 41.0632 45.4557C41.1193 43.3881 41.2106 41.38 41.337 39.4388C41.4072 38.3455 42.4954 37.6761 43.4291 38.1595C45.079 39.0149 46.7709 39.9371 48.4839 40.9188C49.7196 41.6254 50.9692 42.3617 52.2259 43.1352C53.4826 43.9087 54.7112 44.6822 55.9047 45.4631C57.5686 46.549 59.1622 47.6349 60.6857 48.7208C61.5492 49.3306 61.5492 50.6694 60.6857 51.2793C59.1622 52.3651 57.5615 53.4584 55.9047 54.5369C54.7112 55.3178 53.4826 56.0987 52.2259 56.8648C50.9692 57.6383 49.7196 58.3672 48.4839 59.0812Z" fill="white" fill-opacity="0.5"/>
|
||||
<defs>
|
||||
<clipPath id="bgblur_0_3299_15025_clip_path" transform="translate(0 0)"><circle cx="50" cy="50" r="40"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
11
layers/public/images/common/dark/btn_system_play_hover.svg
Normal file
@@ -0,0 +1,11 @@
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="0" y="0" width="100" height="100"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(5px);clip-path:url(#bgblur_0_3299_15026_clip_path);height:100%;width:100%"></div></foreignObject><g data-figma-bg-blur-radius="10">
|
||||
<circle cx="50" cy="50" r="40" fill="black" fill-opacity="0.5"/>
|
||||
<circle cx="50" cy="50" r="40" fill="white" fill-opacity="0.1"/>
|
||||
<circle cx="50" cy="50" r="39.5" stroke="white" stroke-opacity="0.5"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.4839 59.0812C46.7639 60.0629 45.079 60.9852 43.4291 61.8405C42.4954 62.3239 41.4072 61.6545 41.337 60.5612C41.2106 58.62 41.1193 56.6119 41.0632 54.5443C41.0211 53.0568 41 51.5396 41 50C41 48.4604 41.0211 46.9506 41.0632 45.4557C41.1193 43.3881 41.2106 41.38 41.337 39.4388C41.4072 38.3455 42.4954 37.6761 43.4291 38.1595C45.079 39.0149 46.7709 39.9371 48.4839 40.9188C49.7196 41.6254 50.9692 42.3617 52.2259 43.1352C53.4826 43.9087 54.7112 44.6822 55.9047 45.4631C57.5686 46.549 59.1622 47.6349 60.6857 48.7208C61.5492 49.3306 61.5492 50.6694 60.6857 51.2793C59.1622 52.3651 57.5615 53.4584 55.9047 54.5369C54.7112 55.3178 53.4826 56.0987 52.2259 56.8648C50.9692 57.6383 49.7196 58.3672 48.4839 59.0812Z" fill="white" fill-opacity="0.5"/>
|
||||
<defs>
|
||||
<clipPath id="bgblur_0_3299_15026_clip_path" transform="translate(0 0)"><circle cx="50" cy="50" r="40"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
21
layers/public/images/common/dark/btn_system_top.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15079_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15079)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path d="M29 23.4142L33.2929 27.7071C33.6834 28.0976 34.3166 28.0976 34.7071 27.7071C35.0976 27.3166 35.0976 26.6834 34.7071 26.2929L28.7078 20.2936C28.5289 20.1143 28.2822 20.0026 28.0094 20C28.0063 20 28.0032 20 28 20C27.9968 20 27.9937 20 27.9906 20C27.7269 20.0025 27.4877 20.1069 27.3104 20.2758C27.3045 20.2815 27.2987 20.2871 27.2929 20.2929L21.2929 26.2929C20.9024 26.6834 20.9024 27.3166 21.2929 27.7071C21.6834 28.0976 22.3166 28.0976 22.7071 27.7071L27 23.4142L27 34C27 34.5523 27.4477 35 28 35C28.5523 35 29 34.5523 29 34L29 23.4142Z" fill="white" fill-opacity="0.5"/>
|
||||
<path d="M35.5 18C35.5 18.5523 35.0523 19 34.5 19L21.5 19C20.9477 19 20.5 18.5523 20.5 18C20.5 17.4477 20.9477 17 21.5 17L34.5 17C35.0523 17 35.5 17.4477 35.5 18Z" fill="white" fill-opacity="0.5"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15079" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15079"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15079" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15079_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
22
layers/public/images/common/dark/btn_system_top_hover.svg
Normal file
@@ -0,0 +1,22 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15080_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15080)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="black" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path d="M29 23.4142L33.2929 27.7071C33.6834 28.0976 34.3166 28.0976 34.7071 27.7071C35.0976 27.3166 35.0976 26.6834 34.7071 26.2929L28.7078 20.2936C28.5289 20.1143 28.2822 20.0026 28.0094 20C28.0063 20 28.0032 20 28 20C27.9968 20 27.9937 20 27.9906 20C27.7269 20.0025 27.4877 20.1069 27.3104 20.2758C27.3045 20.2815 27.2987 20.2871 27.2929 20.2929L21.2929 26.2929C20.9024 26.6834 20.9024 27.3166 21.2929 27.7071C21.6834 28.0976 22.3166 28.0976 22.7071 27.7071L27 23.4142L27 34C27 34.5523 27.4477 35 28 35C28.5523 35 29 34.5523 29 34L29 23.4142Z" fill="white"/>
|
||||
<path d="M35.5 18C35.5 18.5523 35.0523 19 34.5 19L21.5 19C20.9477 19 20.5 18.5523 20.5 18C20.5 17.4477 20.9477 17 21.5 17L34.5 17C35.0523 17 35.5 17.4477 35.5 18Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15080" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15080"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15080" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15080_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.0714 14.8282C18.6809 15.2187 18.0477 15.2187 17.6572 14.8282C17.2666 14.4377 17.2666 13.8045 17.6572 13.414L18.3643 12.7069C20.3169 10.7543 20.3169 7.58847 18.3643 5.63585C16.4116 3.68323 13.2458 3.68323 11.2932 5.63585L10.5861 6.34296C10.1956 6.73348 9.56239 6.73348 9.17187 6.34296C8.78135 5.95243 8.78135 5.31927 9.17187 4.92874L9.87898 4.22164C12.6127 1.48797 17.0448 1.48797 19.7785 4.22164C22.5121 6.95531 22.5121 11.3875 19.7785 14.1211L19.0714 14.8282ZM14.8287 17.6567C15.2192 18.0472 15.2192 18.6804 14.8287 19.0709L14.1216 19.778C11.388 22.5117 6.9558 22.5117 4.22213 19.778C1.48846 17.0443 1.48846 12.6122 4.22213 9.87849L4.92923 9.17138C5.31976 8.78086 5.95292 8.78086 6.34344 9.17138C6.73397 9.56191 6.73397 10.1951 6.34344 10.5856L5.63634 11.2927C3.68372 13.2453 3.68372 16.4112 5.63634 18.3638C7.58896 20.3164 10.7548 20.3164 12.7074 18.3638L13.4145 17.6567C13.805 17.2662 14.4382 17.2662 14.8287 17.6567ZM14.1216 8.46428C14.5121 8.07375 15.1453 8.07376 15.5358 8.46429C15.9263 8.85481 15.9263 9.48797 15.5358 9.87849L9.879 15.5354C9.48846 15.9259 8.85526 15.9259 8.46474 15.5353C8.07424 15.1448 8.07423 14.5116 8.46474 14.1211L14.1216 8.46428Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.7071 5.70711C20.0976 5.31658 20.0976 4.68342 19.7071 4.29289C19.3166 3.90237 18.6834 3.90237 18.2929 4.29289L12 10.5858L5.70711 4.29289C5.31658 3.90237 4.68342 3.90237 4.29289 4.29289C3.90237 4.68342 3.90237 5.31658 4.29289 5.70711L10.5858 12L4.29289 18.2929C3.90237 18.6834 3.90237 19.3166 4.29289 19.7071C4.68342 20.0976 5.31658 20.0976 5.70711 19.7071L12 13.4142L18.2929 19.7071C18.6834 20.0976 19.3166 20.0976 19.7071 19.7071C20.0976 19.3166 20.0976 18.6834 19.7071 18.2929L13.4142 12L19.7071 5.70711Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 638 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.7929 18.2929C11.4024 18.6834 11.4024 19.3166 11.7929 19.7071C12.1834 20.0976 12.8166 20.0976 13.2071 19.7071L20.2071 12.7071C20.5976 12.3166 20.5976 11.6834 20.2071 11.2929L13.2071 4.29289C12.8166 3.90237 12.1834 3.90237 11.7929 4.29289C11.4024 4.68342 11.4024 5.31658 11.7929 5.70711L17.0858 11L4.5 11C3.94771 11 3.5 11.4477 3.5 12C3.5 12.5523 3.94771 13 4.5 13L17.0858 13L11.7929 18.2929Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 525 B |
@@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.45455 5C5.20351 5 5 5.20351 5 5.45455V18.5455C5 18.7965 5.20351 19 5.45455 19H18.5455C18.7965 19 19 18.7965 19 18.5455V14.9091C19 14.3568 19.4477 13.9091 20 13.9091C20.5523 13.9091 21 14.3568 21 14.9091V18.5455C21 19.9011 19.9011 21 18.5455 21H5.45455C4.09894 21 3 19.9011 3 18.5455L3 5.45455C3 4.09894 4.09894 3 5.45455 3L9.09091 3C9.64319 3 10.0909 3.44772 10.0909 4C10.0909 4.55228 9.64319 5 9.09091 5H5.45455Z" fill="#EBEBEB"/>
|
||||
<path d="M19 6.41421V9.81818C19 10.3705 19.4477 10.8182 20 10.8182C20.5523 10.8182 21 10.3705 21 9.81818V4C21 3.44772 20.5523 3 20 3H14.1818C13.6295 3 13.1818 3.44772 13.1818 4C13.1818 4.55228 13.6295 5 14.1818 5L17.5858 5L10.9292 11.6565C10.5387 12.0471 10.5387 12.6802 10.9292 13.0708C11.3198 13.4613 11.9529 13.4613 12.3435 13.0708L19 6.41421Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 912 B |
@@ -0,0 +1,4 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22.0265 6.77515C22.9737 5.57867 23.6003 3.90666 23.4254 2.25C22.0702 2.31136 20.4381 3.20105 19.4618 4.39753C18.5874 5.45595 17.8297 7.15864 18.0337 8.78462C19.5346 8.90734 21.0793 7.97163 22.0265 6.77515Z" fill="white"/>
|
||||
<path d="M24.1784 9.38534L23.8464 9.35745C22.5604 9.25719 21.3837 9.62957 20.3897 10.0069L19.3814 10.3981C18.917 10.5722 18.5149 10.6972 18.1869 10.6972C17.8232 10.6972 17.3973 10.5679 16.9256 10.3916L15.7142 9.92036C14.9662 9.64193 14.1546 9.40031 13.3246 9.42125C10.8217 9.45315 8.526 10.8727 7.23469 13.1216C4.63612 17.6354 6.56512 24.3024 9.09991 27.9708L9.53965 28.5946L9.84388 29.0098L10.1578 29.4174C11.1678 30.689 12.3337 31.7497 13.755 31.703C14.523 31.6702 15.0938 31.4589 15.6575 31.2216L16.1434 31.0155C16.8008 30.7416 17.5202 30.4909 18.5855 30.4909C19.511 30.4909 20.1636 30.6964 20.7491 30.9348L21.4811 31.246C22.0469 31.481 22.6338 31.6749 23.4478 31.6552C25.1351 31.6284 26.305 30.3637 27.3637 28.8914L27.6635 28.466L28.1083 27.8128C28.254 27.5914 28.3903 27.3714 28.5175 27.1552L28.76 26.7285C28.7984 26.6584 28.8359 26.5889 28.8723 26.5201L29.0796 26.1159C29.1123 26.0501 29.144 25.9851 29.1747 25.921L29.3482 25.5483L29.4998 25.2015L29.6302 24.8848L29.7873 24.4749L29.9 24.155L30 23.8398L29.8843 23.7918L29.5934 23.6516L29.2859 23.4809L29.0483 23.3338L28.7907 23.1589C27.6392 22.3393 26.0767 20.7067 26.0464 17.8746C26.0241 15.2734 27.512 13.6173 28.4644 12.8256L28.6993 12.6386C28.736 12.6106 28.7714 12.5843 28.8052 12.5597L29.0641 12.3809L29.2348 12.2763C28.0657 10.5643 26.4786 9.86607 25.2717 9.57188L24.9218 9.49514L24.5996 9.43898L24.3097 9.39975C24.2644 9.39442 24.2206 9.38964 24.1784 9.38534Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.9565 3.75C16.4527 4.0125 17.9093 4.47705 19.289 5.13185C21.6658 8.73459 22.8468 12.7979 22.4107 17.4863C20.8048 18.7173 19.0062 19.6522 17.0939 20.25C16.6633 19.651 16.2825 19.0151 15.9558 18.3493C16.5782 18.1082 17.1791 17.8108 17.7512 17.4606C17.6026 17.3562 17.4556 17.2397 17.3119 17.1182C13.9473 18.7586 10.0526 18.7584 6.68803 17.1182C6.54599 17.2312 6.39898 17.3476 6.24868 17.4606C6.81984 17.8103 7.41942 18.107 8.04079 18.3476C7.71375 19.0137 7.33303 19.6502 6.90276 20.25C4.99205 19.6498 3.19481 18.7146 1.58918 17.4846C1.21754 13.4418 1.96081 9.34075 4.70267 5.13527C6.08384 4.48031 7.54131 4.01473 9.03843 3.75C9.24308 4.12945 9.4284 4.51986 9.59341 4.91952C11.1872 4.67055 12.8078 4.67055 14.4016 4.91952C14.5666 4.51986 14.7517 4.12945 14.9565 3.75ZM16.1257 11.25C15.0698 11.25 14.25 12.0964 14.25 13.1287C14.25 14.1609 15.096 15 16.1257 15C17.1734 15 17.9817 14.1609 17.9997 13.1287C18.0177 12.0964 17.1816 11.25 16.1257 11.25ZM8.6224 11.25C7.56907 11.25 6.75 12.0964 6.75 13.1287C6.75 14.1609 7.59856 15 8.62568 15C9.67245 15 10.4817 14.1609 10.4997 13.1287C10.5177 12.0964 9.67573 11.25 8.6224 11.25Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.375 13.65H15.875L16.875 9.15H13.375V7.75C13.375 6.72 13.375 5.75 15.375 5.75H16.875V2.39C16.549 2.347 15.318 2.25 14.018 2.25C11.303 2.25 9.375 3.907 9.375 6.95V9.15H6.375V13.65H9.375V21.75H13.375V13.65Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 336 B |
@@ -0,0 +1,13 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3298_5174)">
|
||||
<path d="M17.7524 17.3401L5.04736 30.6226C5.45986 32.0251 6.77986 33.0976 8.34736 33.0976C9.00736 33.0976 9.58486 32.9326 10.0799 32.6026L24.4349 24.4351L17.7524 17.3401Z" fill="#EA4335"/>
|
||||
<path d="M30.6224 15.03L24.4349 11.4825L17.5049 17.5875L24.5174 24.435L30.7049 20.97C31.7774 20.3925 32.5199 19.2375 32.5199 18C32.4374 16.7625 31.6949 15.6075 30.6224 15.03Z" fill="#FBBC04"/>
|
||||
<path d="M5.04734 5.37769C4.96484 5.62519 4.96484 5.95519 4.96484 6.28519V29.7977C4.96484 30.1277 4.96484 30.3752 5.04734 30.7052L18.2473 17.7527L5.04734 5.37769Z" fill="#4285F4"/>
|
||||
<path d="M17.8349 18.0001L24.4349 11.4826L10.1624 3.39759C9.66736 3.06759 9.00736 2.90259 8.34736 2.90259C6.77986 2.90259 5.37736 3.97509 5.04736 5.37759L17.8349 18.0001Z" fill="#34A853"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3298_5174">
|
||||
<rect width="33" height="33" fill="white" transform="translate(1.5 1.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.75 2.25C17.3088 2.25002 18.8064 2.8567 19.9258 3.9416C21.0451 5.0265 21.6983 6.50444 21.747 8.0625L21.75 8.25V15.75C21.75 17.3088 21.1433 18.8064 20.0584 19.9258C18.9735 21.0451 17.4956 21.6983 15.9375 21.747L15.75 21.75H8.25C6.69118 21.75 5.19356 21.1433 4.07422 20.0584C2.95489 18.9735 2.30171 17.4956 2.253 15.9375L2.25 15.75V8.25C2.25002 6.69118 2.8567 5.19356 3.9416 4.07422C5.0265 2.95489 6.50444 2.30171 8.0625 2.253L8.25 2.25H15.75ZM12 7.125C10.7071 7.125 9.46709 7.63861 8.55285 8.55285C7.63861 9.46709 7.125 10.7071 7.125 12C7.125 13.2929 7.63861 14.5329 8.55285 15.4471C9.46709 16.3614 10.7071 16.875 12 16.875C13.2929 16.875 14.5329 16.3614 15.4471 15.4471C16.3614 14.5329 16.875 13.2929 16.875 12C16.875 10.7071 16.3614 9.46709 15.4471 8.55285C14.5329 7.63861 13.2929 7.125 12 7.125ZM12 8.625C12.8951 8.625 13.7535 8.98058 14.3865 9.61351C15.0194 10.2464 15.375 11.1049 15.375 12C15.375 12.8951 15.0194 13.7535 14.3865 14.3865C13.7535 15.0194 12.8951 15.375 12 15.375C11.1049 15.375 10.2464 15.0194 9.61351 14.3865C8.98058 13.7535 8.625 12.8951 8.625 12C8.625 11.1049 8.98058 10.2464 9.61351 9.61351C10.2464 8.98058 11.1049 8.625 12 8.625ZM17.25 5.625C16.9516 5.625 16.6655 5.74353 16.4545 5.9545C16.2435 6.16548 16.125 6.45163 16.125 6.75C16.125 7.04837 16.2435 7.33452 16.4545 7.5455C16.6655 7.75647 16.9516 7.875 17.25 7.875C17.5484 7.875 17.8345 7.75647 18.0455 7.5455C18.2565 7.33452 18.375 7.04837 18.375 6.75C18.375 6.45163 18.2565 6.16548 18.0455 5.9545C17.8345 5.74353 17.5484 5.625 17.25 5.625Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C6.2008 3 1.5 6.71613 1.5 11.3008C1.5 14.2848 3.4918 16.8999 6.48115 18.363C6.26156 19.1831 5.686 21.3336 5.57041 21.7936C5.42833 22.3647 5.77994 22.357 6.01014 22.2032C6.19062 22.083 8.88744 20.2499 10.051 19.4586C10.6824 19.5521 11.3338 19.6019 12 19.6019C17.799 19.6019 22.5 15.8849 22.5 11.3008C22.5 6.71613 17.799 3 12 3Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 500 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3115 6.00894C17.1996 5.30651 16.3971 4.18259 16.1468 2.87247C16.0927 2.58936 16.063 2.29804 16.063 2H12.5144L12.5087 15.78C12.4491 17.3231 11.1384 18.5616 9.5315 18.5616C9.0321 18.5616 8.56181 18.4406 8.14781 18.2295C7.19834 17.7454 6.54854 16.7811 6.54854 15.6713C6.54854 14.0775 7.88675 12.7808 9.53147 12.7808C9.8385 12.7808 10.133 12.8299 10.4116 12.9145V9.40424C10.1233 9.36623 9.83037 9.34243 9.53147 9.34243C5.92996 9.34243 3 12.1815 3 15.6713C3 17.8124 4.10403 19.7072 5.78838 20.853C6.84927 21.5747 8.13974 22 9.53154 22C13.133 22 16.063 19.161 16.063 15.6713V8.68364C17.4548 9.65158 19.16 10.222 21 10.222V6.78356C20.0088 6.78356 19.0857 6.49805 18.3115 6.0089L18.3115 6.00894Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 820 B |
@@ -0,0 +1,6 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.875 6.5475L31.5 4.5V17.4375H16.875V6.5475Z" fill="white"/>
|
||||
<path d="M15.75 6.705L4.5 8.28V17.4375H15.75V6.705Z" fill="white"/>
|
||||
<path d="M15.75 18.5625H4.5V27.72L15.75 29.295V18.5625Z" fill="white"/>
|
||||
<path d="M16.875 29.4525L31.5 31.5V18.5625H16.875V29.4525Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 390 B |
3
layers/public/images/common/dark/ic-v2-logo-x-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.7534 3H20.8224L14.1187 10.6246L22 21H15.8248L10.994 14.7046L5.45851 21H2.3987L9.56606 12.84L2 3H8.33287L12.7 8.75077L17.7534 3ZM16.6778 19.1723H18.3746L7.40566 4.73538H5.57904L16.6778 19.1723Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 325 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4392 3.753L12.1727 3.75L12.5635 3.75225L13.393 3.76275L14.2682 3.78075L15.1682 3.80775L15.622 3.82425L16.327 3.8565L16.8775 3.88725L17.3897 3.9225L17.863 3.96075L18.085 3.98175L18.4982 4.02675L18.8702 4.07625C19.1627 4.11975 19.4102 4.16775 19.6112 4.22175C20.1914 4.37911 20.7201 4.68603 21.1444 5.11181C21.5687 5.53759 21.8738 6.06731 22.0292 6.648C22.1462 7.08675 22.2385 7.63875 22.3097 8.283L22.339 8.565L22.3847 9.093C22.4174 9.50825 22.4424 9.92407 22.4597 10.3402L22.4732 10.6725L22.4912 11.307L22.4995 11.886V12.1147L22.4912 12.6922L22.4732 13.326C22.4612 13.6537 22.4447 13.9965 22.4237 14.3445C22.348 15.5932 22.2227 16.626 22.0292 17.352C21.8618 17.9772 21.5211 18.5423 21.0465 18.9823C20.5718 19.4223 19.9825 19.7193 19.3465 19.839L19.198 19.8682L18.8695 19.9222L18.6887 19.9477L18.2965 19.995L17.863 20.0377L17.6305 20.058L17.137 20.094L16.876 20.1112L16.3247 20.1412L15.622 20.1742L15.169 20.1907L14.2682 20.2177L13.8257 20.2282L12.9707 20.2417L12.1712 20.2492L11.437 20.2463L10.6082 20.2358L9.73298 20.2177L8.83298 20.1907L8.37998 20.1742L7.80548 20.1487L7.00823 20.1037L6.40373 20.0602L5.85623 20.0107L5.46098 19.9665C5.09992 19.927 4.74188 19.8637 4.38923 19.7767C3.80907 19.6194 3.28039 19.3125 2.85606 18.8867C2.43172 18.4609 2.12661 17.9312 1.97123 17.3505C1.85423 16.9117 1.76198 16.3597 1.69073 15.7155L1.66148 15.4335L1.61573 14.9055C1.58305 14.4902 1.55805 14.0744 1.54073 13.6582L1.52723 13.3252L1.50923 12.6907L1.50098 12.1087V11.8837L1.50923 11.3062L1.52723 10.6725C1.53923 10.3447 1.55573 10.002 1.57673 9.654C1.65248 8.40525 1.77773 7.3725 1.97123 6.6465C2.12729 6.06602 2.43294 5.53666 2.85764 5.11129C3.28235 4.68593 3.81124 4.37946 4.39148 4.2225C4.61873 4.16175 4.90598 4.1085 5.24873 4.0605L5.46173 4.03275L5.85698 3.98925L6.28973 3.94875L6.75998 3.91275L7.26548 3.8805L8.08823 3.8385L8.83298 3.8085L9.73298 3.78225L10.609 3.76425L11.4392 3.75375V3.753ZM10.0502 8.49C9.98107 8.48999 9.91403 8.51387 9.86045 8.5576C9.80688 8.60134 9.77006 8.66224 9.75623 8.73L9.75023 8.79V15.21C9.75019 15.2585 9.7619 15.3062 9.78434 15.3492C9.80679 15.3921 9.8393 15.429 9.87911 15.4566C9.91891 15.4843 9.96482 15.5019 10.0129 15.5079C10.061 15.5139 10.1098 15.5082 10.1552 15.4913L10.2092 15.4642L15.3437 12.2542C15.3825 12.23 15.4153 12.1972 15.4395 12.1584C15.4637 12.1195 15.4787 12.0757 15.4833 12.0301C15.488 11.9846 15.4821 11.9386 15.4662 11.8957C15.4504 11.8528 15.4249 11.8141 15.3917 11.7825L15.3437 11.745L10.2092 8.53575C10.1615 8.50616 10.1064 8.49057 10.0502 8.49075V8.49Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.75 3.25L10.75 12.2322L6.88391 8.36611C6.39576 7.87796 5.6043 7.87796 5.11615 8.36611C4.62799 8.85427 4.62799 9.64573 5.11615 10.1339L11.1161 16.1339C11.3506 16.3683 11.6685 16.5 12 16.5C12.3316 16.5 12.6495 16.3683 12.8839 16.1339L18.8839 10.1339C19.3721 9.64573 19.3721 8.85427 18.8839 8.36611C18.3958 7.87796 17.6043 7.87796 17.1161 8.36611L13.25 12.2322L13.25 3.25C13.25 2.55964 12.6904 2 12 2C11.3097 2 10.75 2.55964 10.75 3.25Z" fill="#EBEBEB"/>
|
||||
<path d="M20 21C20.6904 21 21.25 20.4404 21.25 19.75L21.25 17.75C21.25 17.0596 20.6904 16.5 20 16.5C19.3097 16.5 18.75 17.0596 18.75 17.75L18.75 18.5L5.25003 18.5L5.25003 17.75C5.25003 17.0596 4.69039 16.5 4.00003 16.5C3.30967 16.5 2.75003 17.0596 2.75003 17.75L2.75003 19.75C2.75003 20.4404 3.30967 21 4.00003 21L20 21Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 906 B |
20
layers/public/images/common/light/btn_system_SNS.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3320_3781_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3320_3781)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.75 16C30.6789 16 29 17.6789 29 19.75C29 20.0465 29.0344 20.335 29.0995 20.6117C29.06 20.6295 29.0213 20.6502 28.9836 20.6737L24.9836 23.1737C24.9305 23.207 24.8816 23.2444 24.8373 23.2855C24.1643 22.6439 23.2532 22.25 22.25 22.25C20.1789 22.25 18.5 23.9289 18.5 26C18.5 28.0711 20.1789 29.75 22.25 29.75C23.2532 29.75 24.1643 29.3561 24.8373 28.7145C24.8816 28.7556 24.9305 28.793 24.9836 28.8263L28.9836 31.3263C28.996 31.334 29.0086 31.3415 29.0212 31.3486C29.0072 31.4805 29 31.6144 29 31.75C29 33.8211 30.6789 35.5 32.75 35.5C34.8211 35.5 36.5 33.8211 36.5 31.75C36.5 29.6789 34.8211 28 32.75 28C31.521 28 30.43 28.5912 29.7461 29.5048L26.0164 27.1737C25.9596 27.1382 25.9005 27.1093 25.8401 27.0867C25.9441 26.7428 26 26.3779 26 26C26 25.6221 25.9441 25.2572 25.8401 24.9133C25.9005 24.8907 25.9596 24.8618 26.0164 24.8263L30.0164 22.3263L30.0218 22.3229C30.7056 23.0476 31.675 23.5 32.75 23.5C34.8211 23.5 36.5 21.8211 36.5 19.75C36.5 17.6789 34.8211 16 32.75 16ZM31 19.75C31 18.7835 31.7835 18 32.75 18C33.7165 18 34.5 18.7835 34.5 19.75C34.5 20.7165 33.7165 21.5 32.75 21.5C31.7835 21.5 31 20.7165 31 19.75ZM22.25 24.25C21.2835 24.25 20.5 25.0335 20.5 26C20.5 26.9665 21.2835 27.75 22.25 27.75C23.2165 27.75 24 26.9665 24 26C24 25.0335 23.2165 24.25 22.25 24.25ZM32.75 30C31.7835 30 31 30.7835 31 31.75C31 32.7165 31.7835 33.5 32.75 33.5C33.7165 33.5 34.5 32.7165 34.5 31.75C34.5 30.7835 33.7165 30 32.75 30Z" fill="white" fill-opacity="0.5"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3320_3781" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3320_3781"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3320_3781" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3320_3781_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
21
layers/public/images/common/light/btn_system_SNS_hover.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3320_3782_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3320_3782)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.75 16C30.6789 16 29 17.6789 29 19.75C29 20.0465 29.0344 20.335 29.0995 20.6117C29.06 20.6295 29.0213 20.6502 28.9836 20.6737L24.9836 23.1737C24.9305 23.207 24.8816 23.2444 24.8373 23.2855C24.1643 22.6439 23.2532 22.25 22.25 22.25C20.1789 22.25 18.5 23.9289 18.5 26C18.5 28.0711 20.1789 29.75 22.25 29.75C23.2532 29.75 24.1643 29.3561 24.8373 28.7145C24.8816 28.7556 24.9305 28.793 24.9836 28.8263L28.9836 31.3263C28.996 31.334 29.0086 31.3415 29.0212 31.3486C29.0072 31.4805 29 31.6144 29 31.75C29 33.8211 30.6789 35.5 32.75 35.5C34.8211 35.5 36.5 33.8211 36.5 31.75C36.5 29.6789 34.8211 28 32.75 28C31.521 28 30.43 28.5912 29.7461 29.5048L26.0164 27.1737C25.9596 27.1382 25.9005 27.1093 25.8401 27.0867C25.9441 26.7428 26 26.3779 26 26C26 25.6221 25.9441 25.2572 25.8401 24.9133C25.9005 24.8907 25.9596 24.8618 26.0164 24.8263L30.0164 22.3263L30.0218 22.3229C30.7056 23.0476 31.675 23.5 32.75 23.5C34.8211 23.5 36.5 21.8211 36.5 19.75C36.5 17.6789 34.8211 16 32.75 16ZM31 19.75C31 18.7835 31.7835 18 32.75 18C33.7165 18 34.5 18.7835 34.5 19.75C34.5 20.7165 33.7165 21.5 32.75 21.5C31.7835 21.5 31 20.7165 31 19.75ZM22.25 24.25C21.2835 24.25 20.5 25.0335 20.5 26C20.5 26.9665 21.2835 27.75 22.25 27.75C23.2165 27.75 24 26.9665 24 26C24 25.0335 23.2165 24.25 22.25 24.25ZM32.75 30C31.7835 30 31 30.7835 31 31.75C31 32.7165 31.7835 33.5 32.75 33.5C33.7165 33.5 34.5 32.7165 34.5 31.75C34.5 30.7835 33.7165 30 32.75 30Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3320_3782" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3320_3782"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3320_3782" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3320_3782_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15070_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15070)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15070" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15070"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15070" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15070_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15143_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15143)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white" fill-opacity="0.2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15143" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15143"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15143" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15143_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15072_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15072)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2929 18.2929C23.9024 18.6834 23.9024 19.3166 24.2929 19.7071L30.5858 26L24.2929 32.2929C23.9024 32.6834 23.9024 33.3166 24.2929 33.7071C24.6834 34.0976 25.3166 34.0976 25.7071 33.7071L32.7071 26.7071C33.0976 26.3166 33.0976 25.6834 32.7071 25.2929L25.7071 18.2929C25.3166 17.9024 24.6834 17.9024 24.2929 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15072" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15072"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15072" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15072_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15069_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15069)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15069" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15069"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15069" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15069_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15142_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15142)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.2" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white" fill-opacity="0.2"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15142" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15142"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15142" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15142_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15071_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15071)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.7071 18.2929C32.0976 18.6834 32.0976 19.3166 31.7071 19.7071L25.4142 26L31.7071 32.2929C32.0976 32.6834 32.0976 33.3166 31.7071 33.7071C31.3166 34.0976 30.6834 34.0976 30.2929 33.7071L23.2929 26.7071C22.9024 26.3166 22.9024 25.6834 23.2929 25.2929L30.2929 18.2929C30.6834 17.9024 31.3166 17.9024 31.7071 18.2929Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15071" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15071"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15071" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15071_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
10
layers/public/images/common/light/btn_system_play.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="0" y="0" width="100" height="100"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(5px);clip-path:url(#bgblur_0_3299_15025_clip_path);height:100%;width:100%"></div></foreignObject><g data-figma-bg-blur-radius="10">
|
||||
<circle cx="50" cy="50" r="40" fill="black" fill-opacity="0.5"/>
|
||||
<circle cx="50" cy="50" r="39.5" stroke="white" stroke-opacity="0.5"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.4839 59.0812C46.7639 60.0629 45.079 60.9852 43.4291 61.8405C42.4954 62.3239 41.4072 61.6545 41.337 60.5612C41.2106 58.62 41.1193 56.6119 41.0632 54.5443C41.0211 53.0568 41 51.5396 41 50C41 48.4604 41.0211 46.9506 41.0632 45.4557C41.1193 43.3881 41.2106 41.38 41.337 39.4388C41.4072 38.3455 42.4954 37.6761 43.4291 38.1595C45.079 39.0149 46.7709 39.9371 48.4839 40.9188C49.7196 41.6254 50.9692 42.3617 52.2259 43.1352C53.4826 43.9087 54.7112 44.6822 55.9047 45.4631C57.5686 46.549 59.1622 47.6349 60.6857 48.7208C61.5492 49.3306 61.5492 50.6694 60.6857 51.2793C59.1622 52.3651 57.5615 53.4584 55.9047 54.5369C54.7112 55.3178 53.4826 56.0987 52.2259 56.8648C50.9692 57.6383 49.7196 58.3672 48.4839 59.0812Z" fill="white" fill-opacity="0.5"/>
|
||||
<defs>
|
||||
<clipPath id="bgblur_0_3299_15025_clip_path" transform="translate(0 0)"><circle cx="50" cy="50" r="40"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
11
layers/public/images/common/light/btn_system_play_hover.svg
Normal file
@@ -0,0 +1,11 @@
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="0" y="0" width="100" height="100"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(5px);clip-path:url(#bgblur_0_3299_15026_clip_path);height:100%;width:100%"></div></foreignObject><g data-figma-bg-blur-radius="10">
|
||||
<circle cx="50" cy="50" r="40" fill="black" fill-opacity="0.5"/>
|
||||
<circle cx="50" cy="50" r="40" fill="white" fill-opacity="0.1"/>
|
||||
<circle cx="50" cy="50" r="39.5" stroke="white" stroke-opacity="0.5"/>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.4839 59.0812C46.7639 60.0629 45.079 60.9852 43.4291 61.8405C42.4954 62.3239 41.4072 61.6545 41.337 60.5612C41.2106 58.62 41.1193 56.6119 41.0632 54.5443C41.0211 53.0568 41 51.5396 41 50C41 48.4604 41.0211 46.9506 41.0632 45.4557C41.1193 43.3881 41.2106 41.38 41.337 39.4388C41.4072 38.3455 42.4954 37.6761 43.4291 38.1595C45.079 39.0149 46.7709 39.9371 48.4839 40.9188C49.7196 41.6254 50.9692 42.3617 52.2259 43.1352C53.4826 43.9087 54.7112 44.6822 55.9047 45.4631C57.5686 46.549 59.1622 47.6349 60.6857 48.7208C61.5492 49.3306 61.5492 50.6694 60.6857 51.2793C59.1622 52.3651 57.5615 53.4584 55.9047 54.5369C54.7112 55.3178 53.4826 56.0987 52.2259 56.8648C50.9692 57.6383 49.7196 58.3672 48.4839 59.0812Z" fill="white" fill-opacity="0.5"/>
|
||||
<defs>
|
||||
<clipPath id="bgblur_0_3299_15026_clip_path" transform="translate(0 0)"><circle cx="50" cy="50" r="40"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
21
layers/public/images/common/light/btn_system_top.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15073_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15073)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path d="M29 23.4142L33.2929 27.7071C33.6834 28.0976 34.3166 28.0976 34.7071 27.7071C35.0976 27.3166 35.0976 26.6834 34.7071 26.2929L28.7078 20.2936C28.5289 20.1143 28.2822 20.0026 28.0094 20C28.0063 20 28.0032 20 28 20C27.9968 20 27.9937 20 27.9906 20C27.7269 20.0025 27.4877 20.1069 27.3104 20.2758C27.3045 20.2815 27.2987 20.2871 27.2929 20.2929L21.2929 26.2929C20.9024 26.6834 20.9024 27.3166 21.2929 27.7071C21.6834 28.0976 22.3166 28.0976 22.7071 27.7071L27 23.4142L27 34C27 34.5523 27.4477 35 28 35C28.5523 35 29 34.5523 29 34L29 23.4142Z" fill="white" fill-opacity="0.5"/>
|
||||
<path d="M35.5 18C35.5 18.5523 35.0523 19 34.5 19L21.5 19C20.9477 19 20.5 18.5523 20.5 18C20.5 17.4477 20.9477 17 21.5 17L34.5 17C35.0523 17 35.5 17.4477 35.5 18Z" fill="white" fill-opacity="0.5"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15073" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15073"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15073" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15073_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
22
layers/public/images/common/light/btn_system_top_hover.svg
Normal file
@@ -0,0 +1,22 @@
|
||||
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<foreignObject x="-26" y="-28" width="108" height="108"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(15px);clip-path:url(#bgblur_0_3300_15074_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter0_d_3300_15074)" data-figma-bg-blur-radius="30">
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z" fill="white" fill-opacity="0.1" shape-rendering="crispEdges"/>
|
||||
<path d="M28 2.5C40.9787 2.5 51.5 13.0213 51.5 26C51.5 38.9787 40.9787 49.5 28 49.5C15.0213 49.5 4.5 38.9787 4.5 26C4.5 13.0213 15.0213 2.5 28 2.5Z" stroke="white" stroke-opacity="0.06" shape-rendering="crispEdges"/>
|
||||
<path d="M29 23.4142L33.2929 27.7071C33.6834 28.0976 34.3166 28.0976 34.7071 27.7071C35.0976 27.3166 35.0976 26.6834 34.7071 26.2929L28.7078 20.2936C28.5289 20.1143 28.2822 20.0026 28.0094 20C28.0063 20 28.0032 20 28 20C27.9968 20 27.9937 20 27.9906 20C27.7269 20.0025 27.4877 20.1069 27.3104 20.2758C27.3045 20.2815 27.2987 20.2871 27.2929 20.2929L21.2929 26.2929C20.9024 26.6834 20.9024 27.3166 21.2929 27.7071C21.6834 28.0976 22.3166 28.0976 22.7071 27.7071L27 23.4142L27 34C27 34.5523 27.4477 35 28 35C28.5523 35 29 34.5523 29 34L29 23.4142Z" fill="white"/>
|
||||
<path d="M35.5 18C35.5 18.5523 35.0523 19 34.5 19L21.5 19C20.9477 19 20.5 18.5523 20.5 18C20.5 17.4477 20.9477 17 21.5 17L34.5 17C35.0523 17 35.5 17.4477 35.5 18Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_3300_15074" x="-26" y="-28" width="108" height="108" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="2"/>
|
||||
<feGaussianBlur stdDeviation="2"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3300_15074"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3300_15074" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_0_3300_15074_clip_path" transform="translate(26 28)"><path d="M4 26C4 12.7452 14.7452 2 28 2C41.2548 2 52 12.7452 52 26C52 39.2548 41.2548 50 28 50C14.7452 50 4 39.2548 4 26Z"/>
|
||||
</clipPath></defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.0714 14.8282C18.6809 15.2187 18.0477 15.2187 17.6572 14.8282C17.2666 14.4377 17.2666 13.8045 17.6572 13.414L18.3643 12.7069C20.3169 10.7543 20.3169 7.58847 18.3643 5.63585C16.4116 3.68323 13.2458 3.68323 11.2932 5.63585L10.5861 6.34296C10.1956 6.73348 9.56239 6.73348 9.17187 6.34296C8.78135 5.95243 8.78135 5.31927 9.17187 4.92874L9.87898 4.22164C12.6127 1.48797 17.0448 1.48797 19.7785 4.22164C22.5121 6.95531 22.5121 11.3875 19.7785 14.1211L19.0714 14.8282ZM14.8287 17.6567C15.2192 18.0472 15.2192 18.6804 14.8287 19.0709L14.1216 19.778C11.388 22.5117 6.9558 22.5117 4.22213 19.778C1.48846 17.0443 1.48846 12.6122 4.22213 9.87849L4.92923 9.17138C5.31976 8.78086 5.95292 8.78086 6.34344 9.17138C6.73397 9.56191 6.73397 10.1951 6.34344 10.5856L5.63634 11.2927C3.68372 13.2453 3.68372 16.4112 5.63634 18.3638C7.58896 20.3164 10.7548 20.3164 12.7074 18.3638L13.4145 17.6567C13.805 17.2662 14.4382 17.2662 14.8287 17.6567ZM14.1216 8.46428C14.5121 8.07375 15.1453 8.07376 15.5358 8.46429C15.9263 8.85481 15.9263 9.48797 15.5358 9.87849L9.879 15.5354C9.48846 15.9259 8.85526 15.9259 8.46474 15.5353C8.07424 15.1448 8.07423 14.5116 8.46474 14.1211L14.1216 8.46428Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.7071 5.70711C20.0976 5.31658 20.0976 4.68342 19.7071 4.29289C19.3166 3.90237 18.6834 3.90237 18.2929 4.29289L12 10.5858L5.70711 4.29289C5.31658 3.90237 4.68342 3.90237 4.29289 4.29289C3.90237 4.68342 3.90237 5.31658 4.29289 5.70711L10.5858 12L4.29289 18.2929C3.90237 18.6834 3.90237 19.3166 4.29289 19.7071C4.68342 20.0976 5.31658 20.0976 5.70711 19.7071L12 13.4142L18.2929 19.7071C18.6834 20.0976 19.3166 20.0976 19.7071 19.7071C20.0976 19.3166 20.0976 18.6834 19.7071 18.2929L13.4142 12L19.7071 5.70711Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 638 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.7929 18.2929C11.4024 18.6834 11.4024 19.3166 11.7929 19.7071C12.1834 20.0976 12.8166 20.0976 13.2071 19.7071L20.2071 12.7071C20.5976 12.3166 20.5976 11.6834 20.2071 11.2929L13.2071 4.29289C12.8166 3.90237 12.1834 3.90237 11.7929 4.29289C11.4024 4.68342 11.4024 5.31658 11.7929 5.70711L17.0858 11L4.5 11C3.94771 11 3.5 11.4477 3.5 12C3.5 12.5523 3.94771 13 4.5 13L17.0858 13L11.7929 18.2929Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 525 B |
@@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.45455 5C5.20351 5 5 5.20351 5 5.45455V18.5455C5 18.7965 5.20351 19 5.45455 19H18.5455C18.7965 19 19 18.7965 19 18.5455V14.9091C19 14.3568 19.4477 13.9091 20 13.9091C20.5523 13.9091 21 14.3568 21 14.9091V18.5455C21 19.9011 19.9011 21 18.5455 21H5.45455C4.09894 21 3 19.9011 3 18.5455L3 5.45455C3 4.09894 4.09894 3 5.45455 3L9.09091 3C9.64319 3 10.0909 3.44772 10.0909 4C10.0909 4.55228 9.64319 5 9.09091 5H5.45455Z" fill="#EBEBEB"/>
|
||||
<path d="M19 6.41421V9.81818C19 10.3705 19.4477 10.8182 20 10.8182C20.5523 10.8182 21 10.3705 21 9.81818V4C21 3.44772 20.5523 3 20 3H14.1818C13.6295 3 13.1818 3.44772 13.1818 4C13.1818 4.55228 13.6295 5 14.1818 5L17.5858 5L10.9292 11.6565C10.5387 12.0471 10.5387 12.6802 10.9292 13.0708C11.3198 13.4613 11.9529 13.4613 12.3435 13.0708L19 6.41421Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 912 B |
@@ -0,0 +1,4 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22.0265 6.77515C22.9737 5.57867 23.6003 3.90666 23.4254 2.25C22.0702 2.31136 20.4381 3.20105 19.4618 4.39753C18.5874 5.45595 17.8297 7.15864 18.0337 8.78462C19.5346 8.90734 21.0793 7.97163 22.0265 6.77515Z" fill="white"/>
|
||||
<path d="M24.1784 9.38534L23.8464 9.35745C22.5604 9.25719 21.3837 9.62957 20.3897 10.0069L19.3814 10.3981C18.917 10.5722 18.5149 10.6972 18.1869 10.6972C17.8232 10.6972 17.3973 10.5679 16.9256 10.3916L15.7142 9.92036C14.9662 9.64193 14.1546 9.40031 13.3246 9.42125C10.8217 9.45315 8.526 10.8727 7.23469 13.1216C4.63612 17.6354 6.56512 24.3024 9.09991 27.9708L9.53965 28.5946L9.84388 29.0098L10.1578 29.4174C11.1678 30.689 12.3337 31.7497 13.755 31.703C14.523 31.6702 15.0938 31.4589 15.6575 31.2216L16.1434 31.0155C16.8008 30.7416 17.5202 30.4909 18.5855 30.4909C19.511 30.4909 20.1636 30.6964 20.7491 30.9348L21.4811 31.246C22.0469 31.481 22.6338 31.6749 23.4478 31.6552C25.1351 31.6284 26.305 30.3637 27.3637 28.8914L27.6635 28.466L28.1083 27.8128C28.254 27.5914 28.3903 27.3714 28.5175 27.1552L28.76 26.7285C28.7984 26.6584 28.8359 26.5889 28.8723 26.5201L29.0796 26.1159C29.1123 26.0501 29.144 25.9851 29.1747 25.921L29.3482 25.5483L29.4998 25.2015L29.6302 24.8848L29.7873 24.4749L29.9 24.155L30 23.8398L29.8843 23.7918L29.5934 23.6516L29.2859 23.4809L29.0483 23.3338L28.7907 23.1589C27.6392 22.3393 26.0767 20.7067 26.0464 17.8746C26.0241 15.2734 27.512 13.6173 28.4644 12.8256L28.6993 12.6386C28.736 12.6106 28.7714 12.5843 28.8052 12.5597L29.0641 12.3809L29.2348 12.2763C28.0657 10.5643 26.4786 9.86607 25.2717 9.57188L24.9218 9.49514L24.5996 9.43898L24.3097 9.39975C24.2644 9.39442 24.2206 9.38964 24.1784 9.38534Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.9565 3.75C16.4527 4.0125 17.9093 4.47705 19.289 5.13185C21.6658 8.73459 22.8468 12.7979 22.4107 17.4863C20.8048 18.7173 19.0062 19.6522 17.0939 20.25C16.6633 19.651 16.2825 19.0151 15.9558 18.3493C16.5782 18.1082 17.1791 17.8108 17.7512 17.4606C17.6026 17.3562 17.4556 17.2397 17.3119 17.1182C13.9473 18.7586 10.0526 18.7584 6.68803 17.1182C6.54599 17.2312 6.39898 17.3476 6.24868 17.4606C6.81984 17.8103 7.41942 18.107 8.04079 18.3476C7.71375 19.0137 7.33303 19.6502 6.90276 20.25C4.99205 19.6498 3.19481 18.7146 1.58918 17.4846C1.21754 13.4418 1.96081 9.34075 4.70267 5.13527C6.08384 4.48031 7.54131 4.01473 9.03843 3.75C9.24308 4.12945 9.4284 4.51986 9.59341 4.91952C11.1872 4.67055 12.8078 4.67055 14.4016 4.91952C14.5666 4.51986 14.7517 4.12945 14.9565 3.75ZM16.1257 11.25C15.0698 11.25 14.25 12.0964 14.25 13.1287C14.25 14.1609 15.096 15 16.1257 15C17.1734 15 17.9817 14.1609 17.9997 13.1287C18.0177 12.0964 17.1816 11.25 16.1257 11.25ZM8.6224 11.25C7.56907 11.25 6.75 12.0964 6.75 13.1287C6.75 14.1609 7.59856 15 8.62568 15C9.67245 15 10.4817 14.1609 10.4997 13.1287C10.5177 12.0964 9.67573 11.25 8.6224 11.25Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.375 13.65H15.875L16.875 9.15H13.375V7.75C13.375 6.72 13.375 5.75 15.375 5.75H16.875V2.39C16.549 2.347 15.318 2.25 14.018 2.25C11.303 2.25 9.375 3.907 9.375 6.95V9.15H6.375V13.65H9.375V21.75H13.375V13.65Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 336 B |
@@ -0,0 +1,13 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_3298_5174)">
|
||||
<path d="M17.7524 17.3401L5.04736 30.6226C5.45986 32.0251 6.77986 33.0976 8.34736 33.0976C9.00736 33.0976 9.58486 32.9326 10.0799 32.6026L24.4349 24.4351L17.7524 17.3401Z" fill="#EA4335"/>
|
||||
<path d="M30.6224 15.03L24.4349 11.4825L17.5049 17.5875L24.5174 24.435L30.7049 20.97C31.7774 20.3925 32.5199 19.2375 32.5199 18C32.4374 16.7625 31.6949 15.6075 30.6224 15.03Z" fill="#FBBC04"/>
|
||||
<path d="M5.04734 5.37769C4.96484 5.62519 4.96484 5.95519 4.96484 6.28519V29.7977C4.96484 30.1277 4.96484 30.3752 5.04734 30.7052L18.2473 17.7527L5.04734 5.37769Z" fill="#4285F4"/>
|
||||
<path d="M17.8349 18.0001L24.4349 11.4826L10.1624 3.39759C9.66736 3.06759 9.00736 2.90259 8.34736 2.90259C6.77986 2.90259 5.37736 3.97509 5.04736 5.37759L17.8349 18.0001Z" fill="#34A853"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3298_5174">
|
||||
<rect width="33" height="33" fill="white" transform="translate(1.5 1.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.75 2.25C17.3088 2.25002 18.8064 2.8567 19.9258 3.9416C21.0451 5.0265 21.6983 6.50444 21.747 8.0625L21.75 8.25V15.75C21.75 17.3088 21.1433 18.8064 20.0584 19.9258C18.9735 21.0451 17.4956 21.6983 15.9375 21.747L15.75 21.75H8.25C6.69118 21.75 5.19356 21.1433 4.07422 20.0584C2.95489 18.9735 2.30171 17.4956 2.253 15.9375L2.25 15.75V8.25C2.25002 6.69118 2.8567 5.19356 3.9416 4.07422C5.0265 2.95489 6.50444 2.30171 8.0625 2.253L8.25 2.25H15.75ZM12 7.125C10.7071 7.125 9.46709 7.63861 8.55285 8.55285C7.63861 9.46709 7.125 10.7071 7.125 12C7.125 13.2929 7.63861 14.5329 8.55285 15.4471C9.46709 16.3614 10.7071 16.875 12 16.875C13.2929 16.875 14.5329 16.3614 15.4471 15.4471C16.3614 14.5329 16.875 13.2929 16.875 12C16.875 10.7071 16.3614 9.46709 15.4471 8.55285C14.5329 7.63861 13.2929 7.125 12 7.125ZM12 8.625C12.8951 8.625 13.7535 8.98058 14.3865 9.61351C15.0194 10.2464 15.375 11.1049 15.375 12C15.375 12.8951 15.0194 13.7535 14.3865 14.3865C13.7535 15.0194 12.8951 15.375 12 15.375C11.1049 15.375 10.2464 15.0194 9.61351 14.3865C8.98058 13.7535 8.625 12.8951 8.625 12C8.625 11.1049 8.98058 10.2464 9.61351 9.61351C10.2464 8.98058 11.1049 8.625 12 8.625ZM17.25 5.625C16.9516 5.625 16.6655 5.74353 16.4545 5.9545C16.2435 6.16548 16.125 6.45163 16.125 6.75C16.125 7.04837 16.2435 7.33452 16.4545 7.5455C16.6655 7.75647 16.9516 7.875 17.25 7.875C17.5484 7.875 17.8345 7.75647 18.0455 7.5455C18.2565 7.33452 18.375 7.04837 18.375 6.75C18.375 6.45163 18.2565 6.16548 18.0455 5.9545C17.8345 5.74353 17.5484 5.625 17.25 5.625Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C6.2008 3 1.5 6.71613 1.5 11.3008C1.5 14.2848 3.4918 16.8999 6.48115 18.363C6.26156 19.1831 5.686 21.3336 5.57041 21.7936C5.42833 22.3647 5.77994 22.357 6.01014 22.2032C6.19062 22.083 8.88744 20.2499 10.051 19.4586C10.6824 19.5521 11.3338 19.6019 12 19.6019C17.799 19.6019 22.5 15.8849 22.5 11.3008C22.5 6.71613 17.799 3 12 3Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 500 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.3115 6.00894C17.1996 5.30651 16.3971 4.18259 16.1468 2.87247C16.0927 2.58936 16.063 2.29804 16.063 2H12.5144L12.5087 15.78C12.4491 17.3231 11.1384 18.5616 9.5315 18.5616C9.0321 18.5616 8.56181 18.4406 8.14781 18.2295C7.19834 17.7454 6.54854 16.7811 6.54854 15.6713C6.54854 14.0775 7.88675 12.7808 9.53147 12.7808C9.8385 12.7808 10.133 12.8299 10.4116 12.9145V9.40424C10.1233 9.36623 9.83037 9.34243 9.53147 9.34243C5.92996 9.34243 3 12.1815 3 15.6713C3 17.8124 4.10403 19.7072 5.78838 20.853C6.84927 21.5747 8.13974 22 9.53154 22C13.133 22 16.063 19.161 16.063 15.6713V8.68364C17.4548 9.65158 19.16 10.222 21 10.222V6.78356C20.0088 6.78356 19.0857 6.49805 18.3115 6.0089L18.3115 6.00894Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 820 B |
@@ -0,0 +1,6 @@
|
||||
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.875 6.5475L31.5 4.5V17.4375H16.875V6.5475Z" fill="white"/>
|
||||
<path d="M15.75 6.705L4.5 8.28V17.4375H15.75V6.705Z" fill="white"/>
|
||||
<path d="M15.75 18.5625H4.5V27.72L15.75 29.295V18.5625Z" fill="white"/>
|
||||
<path d="M16.875 29.4525L31.5 31.5V18.5625H16.875V29.4525Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 390 B |
3
layers/public/images/common/light/ic-v2-logo-x-fill.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.7534 3H20.8224L14.1187 10.6246L22 21H15.8248L10.994 14.7046L5.45851 21H2.3987L9.56606 12.84L2 3H8.33287L12.7 8.75077L17.7534 3ZM16.6778 19.1723H18.3746L7.40566 4.73538H5.57904L16.6778 19.1723Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 325 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.4392 3.753L12.1727 3.75L12.5635 3.75225L13.393 3.76275L14.2682 3.78075L15.1682 3.80775L15.622 3.82425L16.327 3.8565L16.8775 3.88725L17.3897 3.9225L17.863 3.96075L18.085 3.98175L18.4982 4.02675L18.8702 4.07625C19.1627 4.11975 19.4102 4.16775 19.6112 4.22175C20.1914 4.37911 20.7201 4.68603 21.1444 5.11181C21.5687 5.53759 21.8738 6.06731 22.0292 6.648C22.1462 7.08675 22.2385 7.63875 22.3097 8.283L22.339 8.565L22.3847 9.093C22.4174 9.50825 22.4424 9.92407 22.4597 10.3402L22.4732 10.6725L22.4912 11.307L22.4995 11.886V12.1147L22.4912 12.6922L22.4732 13.326C22.4612 13.6537 22.4447 13.9965 22.4237 14.3445C22.348 15.5932 22.2227 16.626 22.0292 17.352C21.8618 17.9772 21.5211 18.5423 21.0465 18.9823C20.5718 19.4223 19.9825 19.7193 19.3465 19.839L19.198 19.8682L18.8695 19.9222L18.6887 19.9477L18.2965 19.995L17.863 20.0377L17.6305 20.058L17.137 20.094L16.876 20.1112L16.3247 20.1412L15.622 20.1742L15.169 20.1907L14.2682 20.2177L13.8257 20.2282L12.9707 20.2417L12.1712 20.2492L11.437 20.2463L10.6082 20.2358L9.73298 20.2177L8.83298 20.1907L8.37998 20.1742L7.80548 20.1487L7.00823 20.1037L6.40373 20.0602L5.85623 20.0107L5.46098 19.9665C5.09992 19.927 4.74188 19.8637 4.38923 19.7767C3.80907 19.6194 3.28039 19.3125 2.85606 18.8867C2.43172 18.4609 2.12661 17.9312 1.97123 17.3505C1.85423 16.9117 1.76198 16.3597 1.69073 15.7155L1.66148 15.4335L1.61573 14.9055C1.58305 14.4902 1.55805 14.0744 1.54073 13.6582L1.52723 13.3252L1.50923 12.6907L1.50098 12.1087V11.8837L1.50923 11.3062L1.52723 10.6725C1.53923 10.3447 1.55573 10.002 1.57673 9.654C1.65248 8.40525 1.77773 7.3725 1.97123 6.6465C2.12729 6.06602 2.43294 5.53666 2.85764 5.11129C3.28235 4.68593 3.81124 4.37946 4.39148 4.2225C4.61873 4.16175 4.90598 4.1085 5.24873 4.0605L5.46173 4.03275L5.85698 3.98925L6.28973 3.94875L6.75998 3.91275L7.26548 3.8805L8.08823 3.8385L8.83298 3.8085L9.73298 3.78225L10.609 3.76425L11.4392 3.75375V3.753ZM10.0502 8.49C9.98107 8.48999 9.91403 8.51387 9.86045 8.5576C9.80688 8.60134 9.77006 8.66224 9.75623 8.73L9.75023 8.79V15.21C9.75019 15.2585 9.7619 15.3062 9.78434 15.3492C9.80679 15.3921 9.8393 15.429 9.87911 15.4566C9.91891 15.4843 9.96482 15.5019 10.0129 15.5079C10.061 15.5139 10.1098 15.5082 10.1552 15.4913L10.2092 15.4642L15.3437 12.2542C15.3825 12.23 15.4153 12.1972 15.4395 12.1584C15.4637 12.1195 15.4787 12.0757 15.4833 12.0301C15.488 11.9846 15.4821 11.9386 15.4662 11.8957C15.4504 11.8528 15.4249 11.8141 15.3917 11.7825L15.3437 11.745L10.2092 8.53575C10.1615 8.50616 10.1064 8.49057 10.0502 8.49075V8.49Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.75 3.25L10.75 12.2322L6.88391 8.36611C6.39576 7.87796 5.6043 7.87796 5.11615 8.36611C4.62799 8.85427 4.62799 9.64573 5.11615 10.1339L11.1161 16.1339C11.3506 16.3683 11.6685 16.5 12 16.5C12.3316 16.5 12.6495 16.3683 12.8839 16.1339L18.8839 10.1339C19.3721 9.64573 19.3721 8.85427 18.8839 8.36611C18.3958 7.87796 17.6043 7.87796 17.1161 8.36611L13.25 12.2322L13.25 3.25C13.25 2.55964 12.6904 2 12 2C11.3097 2 10.75 2.55964 10.75 3.25Z" fill="#EBEBEB"/>
|
||||
<path d="M20 21C20.6904 21 21.25 20.4404 21.25 19.75L21.25 17.75C21.25 17.0596 20.6904 16.5 20 16.5C19.3097 16.5 18.75 17.0596 18.75 17.75L18.75 18.5L5.25003 18.5L5.25003 17.75C5.25003 17.0596 4.69039 16.5 4.00003 16.5C3.30967 16.5 2.75003 17.0596 2.75003 17.75L2.75003 19.75C2.75003 20.4404 3.30967 21 4.00003 21L20 21Z" fill="#EBEBEB"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 906 B |
27
layers/registry/index.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import GrVisual01 from "#layers/templates/GrVisual01/index.vue";
|
||||
import GrVisual02 from "#layers/templates/GrVisual02/index.vue";
|
||||
import GrVisual03 from "#layers/templates/GrVisual03/index.vue";
|
||||
// import GrGallery01 from "#layers/templates/GrGallery01/index.vue";
|
||||
// import GrGallery02 from "#layers/templates/GrGallery02/index.vue";
|
||||
// import GrGallery03 from "#layers/templates/GrGallery03/index.vue";
|
||||
// import GrBoard01 from "#layers/templates/GrBoard01/index.vue";
|
||||
// import GrDetail01 from "#layers/templates/GrDetail01/index.vue";
|
||||
// import GrDetail02 from "#layers/templates/GrDetail02/index.vue";
|
||||
// import GrDetail03 from "#layers/templates/GrDetail03/index.vue";
|
||||
// import GrContents01 from "#layers/templates/GrContents01/index.vue";
|
||||
|
||||
export const templateRegistry = {
|
||||
GR_VISUAL_01: { component: GrVisual01 },
|
||||
GR_VISUAL_02: { component: GrVisual02 },
|
||||
GR_VISUAL_03: { component: GrVisual03 },
|
||||
// GR_GALLERY_01: { component: GrGallery01 },
|
||||
// GR_GALLERY_02: { component: GrGallery02 },
|
||||
// GR_GALLERY_03: { component: GrGallery03 },
|
||||
// GR_BOARD_01: { component: GrBoard01 },
|
||||
// GR_DETAIL_01: { component: GrDetail01 },
|
||||
// GR_DETAIL_02: { component: GrDetail02 },
|
||||
// GR_DETAIL_03: { component: GrDetail03 },
|
||||
// GR_CONTENTS_01: { component: GrContents01 },
|
||||
} as const;
|
||||
|
||||
export type TemplateKey = keyof typeof templateRegistry;
|
||||
52
layers/server/api/gameData.get.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import { commonFetch } from "#layers/utils/apiUtil";
|
||||
import { getHeader } from "h3";
|
||||
import type {
|
||||
GameDataResponse,
|
||||
GameDataValue,
|
||||
} from "#layers/types/api/gameData";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const config = useRuntimeConfig();
|
||||
const baseDomain = (config.public.baseDomain || ".onstove.com") as string;
|
||||
const stoveApiBaseUrl = config.public.stoveApiUrl;
|
||||
const apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/game`;
|
||||
let gameAlias = "";
|
||||
|
||||
try {
|
||||
// 미들웨어에서 설정한 gameAlias가 있다면 우선 사용
|
||||
if (event.context.gameAlias) {
|
||||
gameAlias = event.context.gameAlias;
|
||||
} else {
|
||||
const host = getHeader(event, "host") || "";
|
||||
const isGameAliasExtractable = host.includes(baseDomain);
|
||||
|
||||
if (isGameAliasExtractable) {
|
||||
const subdomain = host.split(".")[0];
|
||||
if (subdomain && subdomain !== "www") {
|
||||
gameAlias = subdomain;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("gameAlias extraction error: ", error);
|
||||
}
|
||||
|
||||
try {
|
||||
const queryParams: Record<string, string> = {
|
||||
game_alias: gameAlias,
|
||||
lang_code: "ko",
|
||||
};
|
||||
|
||||
const response = (await commonFetch("GET", apiUrl, {
|
||||
query: queryParams,
|
||||
})) as GameDataResponse | null;
|
||||
|
||||
if (response?.code === 0 && "value" in response) {
|
||||
event.context.gameData = response.value;
|
||||
return response.value as GameDataValue;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return {};
|
||||
}
|
||||
});
|
||||
16
layers/server/middleware/gameAlias.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { getHeader, getRequestHost, defineEventHandler } from "h3";
|
||||
|
||||
export default defineEventHandler((event) => {
|
||||
const host =
|
||||
(getHeader(event, "host") || getRequestHost(event)).toString() || "";
|
||||
const baseDomain = process.env.BASE_DOMAIN || ".onstove.com";
|
||||
const isGameAliasExtractable = host.includes(baseDomain);
|
||||
|
||||
if (isGameAliasExtractable) {
|
||||
const gameAlias = host.split(".")[0];
|
||||
|
||||
if (gameAlias && gameAlias !== "www") {
|
||||
event.context.gameAlias = gameAlias;
|
||||
}
|
||||
}
|
||||
});
|
||||