From 41ae618a5feb3be4d561bbf7078bc8ecc923a20e Mon Sep 17 00:00:00 2001 From: clkim Date: Thu, 13 Nov 2025 17:47:40 +0900 Subject: [PATCH] =?UTF-8?q?feat.=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=EC=8B=9C=20=EB=A1=9C=EB=94=A9=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layers/assets/css/components/_baseContent.css | 93 +++++++++++++++++++ layers/components/atoms/loading/Full.vue | 6 +- layers/components/layouts/Main.vue | 32 ++++--- layers/middleware/pageData.global.ts | 77 ++++++++------- layers/stores/useLoadingStore.ts | 38 +++++--- layers/templates/FxSecure01/index.vue | 1 + layers/utils/apiUtil.ts | 12 +-- 7 files changed, 189 insertions(+), 70 deletions(-) create mode 100644 layers/assets/css/components/_baseContent.css diff --git a/layers/assets/css/components/_baseContent.css b/layers/assets/css/components/_baseContent.css new file mode 100644 index 0000000..18e1b17 --- /dev/null +++ b/layers/assets/css/components/_baseContent.css @@ -0,0 +1,93 @@ +/* 에디터 콘텐츠 기본 스타일 유틸리티 */ +/* use-base 클래스를 추가하면 하위 자식 요소들에 기본 스타일이 적용됩니다 */ +@layer components { + .use-base ul, + .use-base ol { + @apply list-disc pl-6; + } + .use-base ol { + @apply list-decimal; + } + .use-base ul ul, + .use-base ol ol, + .use-base ul ol, + .use-base ol ul { + @apply mb-0; + } + + .use-base table { + @apply w-full border-collapse; + } + .use-base thead { + @apply bg-gray-100; + } + .use-base th, + .use-base td { + @apply border border-gray-300 px-4 py-2 text-left; + } + .use-base th { + @apply font-semibold bg-gray-50; + } + .use-base tbody tr:nth-child(even) { + @apply bg-gray-50; + } + + .use-base blockquote { + @apply border-l-4 border-gray-300 pl-4 italic text-gray-700; + } + + .use-base h1 { + @apply text-2xl; + } + .use-base h2 { + @apply text-xl; + } + .use-base h3 { + @apply text-lg; + } + .use-base h4 { + @apply text-base; + } + .use-base h5 { + @apply text-sm; + } + .use-base h6 { + @apply text-xs; + } + + .use-base strong, + .use-base b { + @apply font-bold; + } + .use-base em, + .use-base i { + @apply italic; + } + .use-base u { + @apply underline; + } + .use-base s { + @apply line-through; + } + + .use-base a { + @apply text-blue-600 underline; + } + .use-base a:hover { + @apply text-blue-800; + } + + .use-base img { + @apply max-w-full h-auto my-4; + } + + .use-base pre { + @apply bg-gray-100 p-4 rounded overflow-x-auto mb-4; + } + .use-base code { + @apply bg-gray-100 px-1 py-0.5 rounded text-sm; + } + .use-base pre code { + @apply bg-transparent p-0; + } +} diff --git a/layers/components/atoms/loading/Full.vue b/layers/components/atoms/loading/Full.vue index ab08e97..ef034d4 100644 --- a/layers/components/atoms/loading/Full.vue +++ b/layers/components/atoms/loading/Full.vue @@ -6,8 +6,8 @@ const { fullLoading } = storeToRefs(loadingStore)