podo-ui 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,134 +1,1203 @@
1
+ @use '../../scss/color/function.scss' as *;
2
+ @use '../../scss/layout/radius.scss' as *;
3
+ @use '../../scss/typo/mixin.scss' as typo;
4
+ @use '../../scss/typo/font-size.scss' as *;
5
+ @use '../../scss/layout/device.scss' as *;
6
+
1
7
  .editor {
2
- &:global {
3
- > * {
4
- // fix
5
- button {
6
- display: inline-block;
7
- min-width: initial;
8
- height: inherit;
9
- border-radius: inherit;
10
- }
11
- .se-dialog input {
12
- color: inherit;
13
- &[type='file'] {
14
- padding: 0 !important;
15
- }
16
- &[type='radio'],
17
- &[type='checkbox'] {
18
- border: 0;
19
- &:focus {
20
- outline: 0;
21
- box-shadow: none !important;
22
- }
23
- }
8
+ display: flex;
9
+ flex-direction: column;
10
+ border: 1px solid color(border);
11
+ border-radius: r(3);
12
+ background: color(bg-modal);
13
+ overflow: hidden;
14
+ position: relative;
15
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
16
+
17
+ &.success {
18
+ border-color: color(success);
19
+ }
20
+
21
+ &.danger {
22
+ border-color: color(danger);
23
+ }
24
+ }
25
+
26
+ .toolbar {
27
+ display: flex;
28
+ flex-wrap: wrap;
29
+ gap: 0;
30
+ padding: 8px 10px;
31
+ background: color(bg-elevation);
32
+ border-bottom: 1px solid color(border);
33
+ border-radius: r(3) r(3) 0 0;
34
+ min-height: 44px;
35
+ align-items: center;
36
+ position: relative;
37
+ overflow: visible;
38
+ }
39
+
40
+ .toolbarGroup {
41
+ display: flex;
42
+ gap: 4px;
43
+ padding: 0 8px;
44
+ position: relative;
45
+
46
+ &:not(:last-child)::after {
47
+ content: '';
48
+ position: absolute;
49
+ right: 0;
50
+ top: 50%;
51
+ transform: translateY(-50%);
52
+ height: 20px;
53
+ width: 1px;
54
+ background: color(border);
55
+ }
56
+ }
57
+
58
+ .toolbarButton {
59
+ display: inline-flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ width: 35px;
63
+ height: 32px;
64
+ padding: 0;
65
+ border: 1px solid transparent;
66
+ border-radius: r(2);
67
+ background: transparent;
68
+ color: color(text-action);
69
+ cursor: pointer;
70
+ transition: all 0.2s;
71
+
72
+ &:hover {
73
+ background: color(default-fill);
74
+ border-color: color(border-hover);
75
+ color: color(text-action-hover);
76
+ }
77
+
78
+ &:active {
79
+ background: color(default-pressed);
80
+ border-color: color(border-pressed);
81
+ color: color(text-action-pressed);
82
+ }
83
+
84
+ &.active {
85
+ background: color(primary-fill);
86
+ border-color: color(primary);
87
+ color: color(primary);
88
+
89
+ i {
90
+ filter: brightness(0) saturate(100%) invert(30%) sepia(88%) saturate(1838%) hue-rotate(250deg) brightness(95%) contrast(109%);
91
+ }
92
+ }
93
+
94
+ &:focus {
95
+ outline: 2px solid color(primary-outline);
96
+ outline-offset: -1px;
97
+ }
98
+
99
+ i {
100
+ display: inline-block;
101
+ width: 16px;
102
+ height: 16px;
103
+ background-size: 16px 16px;
104
+ background-repeat: no-repeat;
105
+ background-position: center;
106
+ filter: opacity(0.7);
107
+ transition: filter 0.2s;
108
+
109
+ &.undo {
110
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"/></svg>');
111
+ }
112
+
113
+ &.redo {
114
+ background-image: url('data:image/svg+xml,<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m386.3 160h-50.3c-17.7 0-32 14.3-32 32s14.3 32 32 32h128c17.7 0 32-14.3 32-32v-128c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2l-17.6-17.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8 229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3 163.8-62.5 226.3 0z"/></svg>');
115
+ }
116
+
117
+ &.bold {
118
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>');
119
+ }
120
+
121
+ &.italic {
122
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>');
123
+ }
124
+
125
+ &.underline {
126
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>');
127
+ }
128
+
129
+ &.strikethrough {
130
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z"/></svg>');
131
+ }
132
+
133
+ &.alignLeft {
134
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
135
+ }
136
+
137
+ &.alignCenter {
138
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>');
139
+ }
140
+
141
+ &.alignRight {
142
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
143
+ }
144
+
145
+ &.alignJustify {
146
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"/></svg>');
147
+ }
148
+
149
+ &.listUl {
150
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"/></svg>');
151
+ }
152
+
153
+ &.listOl {
154
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>');
155
+ }
156
+
157
+ &.link {
158
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>');
159
+ }
160
+
161
+ &.unlink {
162
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-.5 .7L38.8 5.1zM34 189.1l90.5 90.5c-10.4 10.4-18 22.3-22.6 35.1L5.1 466.9c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l127.4-99.9c29.5 33.7 80.5 39.9 119.8 15l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C109.4 328.6 109.4 277.6 140.9 246.1l33-33 .2-.2 55.4-55.4 .2-.2 33-33c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.8l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6c41.2-57.4 34.7-136.2-15.3-186.2c-56.5-56.5-148-56.5-204.5 0L34 189.1z"/></svg>');
163
+ }
164
+
165
+ &.eraser {
166
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z"/></svg>');
167
+ }
168
+
169
+ &.fontColor {
170
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"/></svg>');
171
+ }
172
+
173
+ &.highlight {
174
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"/></svg>');
175
+ }
176
+
177
+ &.image {
178
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>');
179
+ }
180
+
181
+ &.youtube {
182
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg>');
183
+ }
184
+
185
+ &.code {
186
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"/></svg>');
187
+ }
188
+ }
189
+
190
+ &:hover i {
191
+ filter: opacity(1);
192
+ }
193
+ }
194
+
195
+ .paragraphButton {
196
+ display: flex;
197
+ align-items: center;
198
+ gap: 4px;
199
+ height: 30px;
200
+ padding: 0 10px;
201
+ border: 1px solid color(border);
202
+ background: color(bg-modal);
203
+ color: color(text-body);
204
+ font-size: 13px;
205
+ min-width: 100px;
206
+ cursor: pointer;
207
+ transition: all 0.2s;
208
+ margin: 0 2px;
209
+
210
+ &:hover {
211
+ border-color: color(border-hover);
212
+ background: color(default-fill);
213
+ }
214
+
215
+ &:focus {
216
+ outline: 2px solid color(primary-outline);
217
+ outline-offset: -1px;
218
+ border-color: color(primary);
219
+ }
220
+
221
+ span {
222
+ flex: 1;
223
+ text-align: left;
224
+ }
225
+ }
226
+
227
+ .dropdownArrow {
228
+ width: 0;
229
+ height: 0;
230
+ border-left: 4px solid transparent;
231
+ border-right: 4px solid transparent;
232
+ border-top: 5px solid color(text-body);
233
+ transition: transform 0.2s;
234
+ }
235
+
236
+ .paragraphDropdown {
237
+ position: fixed;
238
+ margin-top: 2px;
239
+ min-width: 200px;
240
+ max-height: 400px;
241
+ overflow-y: auto;
242
+ background: color(bg-modal);
243
+ border: 1px solid color(border);
244
+ border-radius: r(2);
245
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
246
+ z-index: 10000;
247
+
248
+ // 드롭다운 내 h1, h2, h3 태그 스타일
249
+ h1 {
250
+ @include typo.h1;
251
+ margin: 0 !important;
252
+ line-height: 1 !important;
253
+ }
254
+
255
+ h2 {
256
+ @include typo.h2;
257
+ margin: 0 !important;
258
+ line-height: 1 !important;
259
+ }
260
+
261
+ h3 {
262
+ @include typo.h3;
263
+ margin: 0 !important;
264
+ line-height: 1 !important;
265
+ }
266
+ }
267
+
268
+ .paragraphOption {
269
+ display: block;
270
+ width: 100%;
271
+ padding: 10px 16px;
272
+ text-align: left;
273
+ border: none;
274
+ border-radius: 0;
275
+ background: none;
276
+ cursor: pointer;
277
+ transition: background-color 0.2s;
278
+
279
+ &:hover {
280
+ background: color(default-hover);
281
+ }
282
+
283
+ &.active {
284
+ background: color(primary-fill);
285
+ }
286
+ }
287
+
288
+ // 정렬 드롭다운
289
+ .alignDropdown {
290
+ position: fixed;
291
+ margin-top: 2px;
292
+ padding: 4px;
293
+ background: color(bg-modal);
294
+ border: 1px solid color(border);
295
+ border-radius: r(2);
296
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
297
+ z-index: 10000;
298
+ display: flex;
299
+ flex-direction: column;
300
+ gap: 2px;
301
+ }
302
+
303
+ .alignOption {
304
+ display: inline-flex;
305
+ align-items: center;
306
+ justify-content: center;
307
+ width: 35px;
308
+ height: 32px;
309
+ padding: 0;
310
+ border: 1px solid transparent;
311
+ border-radius: r(2);
312
+ background: transparent;
313
+ cursor: pointer;
314
+ transition: all 0.2s;
315
+
316
+ i {
317
+ display: inline-block;
318
+ width: 16px;
319
+ height: 16px;
320
+ background-size: 16px 16px;
321
+ background-repeat: no-repeat;
322
+ background-position: center;
323
+ filter: opacity(0.7);
324
+ transition: filter 0.2s;
325
+ }
326
+
327
+ // 아이콘 정의 (toolbarButton과 동일)
328
+ .alignLeft {
329
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
330
+ }
331
+
332
+ .alignCenter {
333
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>');
334
+ }
335
+
336
+ .alignRight {
337
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
338
+ }
339
+
340
+ &:hover {
341
+ background: color(default-fill);
342
+ border-color: color(border-hover);
343
+
344
+ i {
345
+ filter: opacity(1);
346
+ }
347
+ }
348
+
349
+ &.active {
350
+ background: color(primary-fill);
351
+ border-color: color(primary);
352
+
353
+ i {
354
+ filter: brightness(0) saturate(100%) invert(30%) sepia(88%) saturate(1838%) hue-rotate(250deg) brightness(95%) contrast(109%);
355
+ }
356
+ }
357
+ }
358
+
359
+ // 링크 드롭다운
360
+ .linkDropdown {
361
+ position: fixed;
362
+ margin-top: 2px;
363
+ padding: 12px;
364
+ background: color(bg-modal);
365
+ border: 1px solid color(border);
366
+ border-radius: r(2);
367
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
368
+ z-index: 10000;
369
+ min-width: 280px;
370
+
371
+ .linkInput {
372
+ margin-bottom: 12px;
373
+
374
+ label {
375
+ display: block;
376
+ font-size: 12px;
377
+ color: color(text-sub);
378
+ margin-bottom: 4px;
379
+ font-weight: 500;
380
+ }
381
+
382
+ input[type="text"] {
383
+ width: 100%;
384
+ padding: 6px 10px;
385
+ border: 1px solid color(border);
386
+ border-radius: r(2);
387
+ font-size: 13px;
388
+ outline: none;
389
+ transition: border-color 0.2s;
390
+
391
+ &:focus {
392
+ border-color: color(primary);
24
393
  }
25
- .se-dialog input[type='file'] {
26
- display: none;
394
+
395
+ &::placeholder {
396
+ color: color(text-placeholder);
27
397
  }
28
- .se-dialog input[type='file'] {
29
- height: fit-content !important;
398
+ }
399
+ }
400
+
401
+ .linkTarget {
402
+ margin-bottom: 12px;
403
+ padding: 8px 0;
404
+ border-top: 1px solid color(border);
405
+ border-bottom: 1px solid color(border);
406
+
407
+ label {
408
+ display: flex;
409
+ align-items: center;
410
+ margin-bottom: 6px;
411
+ font-size: 13px;
412
+ color: color(text-body);
413
+ cursor: pointer;
414
+
415
+ &:last-child {
416
+ margin-bottom: 0;
30
417
  }
31
- .se-list-inner li > button {
32
- align-items: center;
418
+
419
+ input[type="radio"] {
420
+ margin-right: 6px;
421
+ cursor: pointer;
33
422
  }
34
- .se-list-layer {
35
- ul {
36
- > li {
37
- text-align: left;
38
- }
39
- }
40
- &:not(.se-list-align) ul {
41
- width: 100% !important;
423
+ }
424
+ }
425
+
426
+ .linkActions {
427
+ display: flex;
428
+ gap: 8px;
429
+ justify-content: flex-end;
430
+
431
+ button {
432
+ padding: 6px 12px;
433
+ border: 1px solid color(border);
434
+ border-radius: r(2);
435
+ font-size: 12px;
436
+ cursor: pointer;
437
+ transition: all 0.2s;
438
+
439
+ &.primary {
440
+ background-color: color(primary);
441
+ color: white;
442
+ border-color: color(primary);
443
+
444
+ &:hover:not(:disabled) {
445
+ background-color: color(primary-hover);
446
+ border-color: color(primary-hover);
42
447
  }
43
- &.se-list-align ul {
44
- width: 130px !important;
448
+
449
+ &:disabled {
450
+ opacity: 0.5;
451
+ cursor: not-allowed;
45
452
  }
46
453
  }
47
- .se-btn-list > .se-list-icon {
48
- width: 25px !important;
49
- height: 25px !important;
50
- }
51
- .se-list-inner li > button {
52
- display: flex;
53
- justify-content: flex-start;
54
- }
55
- button:hover {
56
- background-color: var(--primary-light) !important;
57
- }
58
- input[tabindex='-1'] {
59
- display: none;
60
- }
61
454
 
62
- // icon
63
- i.editor {
64
- display: inline-block;
65
- width: 25px;
66
- height: 25px;
67
- text-indent: -9999px;
68
- background-size: 16px 16px;
69
- background-repeat: no-repeat;
70
- background-position: center;
71
- &.undo {
72
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z"/></svg>');
73
- }
74
- &.redo {
75
- background-image: url('data:image/svg+xml,<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m386.3 160h-50.3c-17.7 0-32 14.3-32 32s14.3 32 32 32h128c17.7 0 32-14.3 32-32v-128c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2l-17.6-17.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8 229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3 163.8-62.5 226.3 0z"/></svg>');
455
+ &.default {
456
+ background-color: transparent;
457
+ color: inherit;
458
+ border-color: color(border);
459
+
460
+ &:hover:not(:disabled) {
461
+ background-color: color(bg-elevation);
76
462
  }
77
- &.bold {
78
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>');
463
+ }
464
+ }
465
+ }
466
+ }
467
+
468
+ // 색상 팔레트 드롭다운
469
+ .colorPalette {
470
+ position: fixed;
471
+ margin-top: 2px;
472
+ padding: 8px;
473
+ background: color(bg-modal);
474
+ border: 1px solid color(border);
475
+ border-radius: r(2);
476
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
477
+ z-index: 10000;
478
+ display: flex;
479
+ flex-direction: column;
480
+ gap: 4px;
481
+ }
482
+
483
+ .colorRow {
484
+ display: flex;
485
+ gap: 4px;
486
+ }
487
+
488
+ .colorButton {
489
+ width: 24px;
490
+ height: 24px;
491
+ padding: 0;
492
+ border: 1px solid color(border);
493
+ border-radius: r(1);
494
+ cursor: pointer;
495
+ transition: all 0.2s;
496
+
497
+ &:hover {
498
+ transform: scale(1.1);
499
+ border-color: color(primary);
500
+ box-shadow: 0 0 0 2px color(primary-outline);
501
+ }
502
+
503
+ &:active {
504
+ transform: scale(0.95);
505
+ }
506
+ }
507
+
508
+ // 드롭다운 내 미리보기 스타일
509
+ .pDefault {
510
+ @include typo.p3; // 기본 본문은 p3 사용
511
+ margin: 0;
512
+ }
513
+
514
+ .p1Preview {
515
+ @include typo.p1;
516
+ margin: 0;
517
+ }
518
+
519
+ .p1_semiboldPreview {
520
+ @include typo.p1;
521
+ font-weight: 600;
522
+ margin: 0;
523
+ }
524
+
525
+ .p2Preview {
526
+ @include typo.p2;
527
+ margin: 0;
528
+ }
529
+
530
+ .p2_semiboldPreview {
531
+ @include typo.p2;
532
+ font-weight: 600;
533
+ margin: 0;
534
+ }
535
+
536
+ .p3Preview {
537
+ @include typo.p3;
538
+ margin: 0;
539
+ }
540
+
541
+ .p3_semiboldPreview {
542
+ @include typo.p3-semibold;
543
+ margin: 0;
544
+ }
545
+
546
+ .p4Preview {
547
+ @include typo.p4;
548
+ margin: 0;
549
+ }
550
+
551
+ .p4_semiboldPreview {
552
+ @include typo.p4-semibold;
553
+ margin: 0;
554
+ }
555
+
556
+ .p5Preview {
557
+ @include typo.p5;
558
+ margin: 0;
559
+ }
560
+
561
+ .p5_semiboldPreview {
562
+ @include typo.p5-semibold;
563
+ margin: 0;
564
+ }
565
+
566
+ .editorContainer {
567
+ background: color(bg-modal);
568
+ overflow: hidden;
569
+
570
+ &.resizable {
571
+ resize: vertical;
572
+ overflow: auto;
573
+
574
+ // 리사이즈 핸들 스타일
575
+ &::-webkit-resizer {
576
+ background: transparent;
577
+ }
578
+ }
579
+ }
580
+
581
+ .editorContent {
582
+ padding: 16px 20px;
583
+ color: color(text-body); // 기본 텍스트 색상
584
+ font-family: inherit; // podo-ui 기본 폰트 상속
585
+ overflow-y: auto;
586
+ overflow-x: hidden;
587
+ outline: none;
588
+ background: transparent;
589
+ box-sizing: border-box;
590
+
591
+ &:focus {
592
+ outline: none;
593
+ }
594
+
595
+ &:empty::before {
596
+ content: attr(data-placeholder);
597
+ color: color(text-sub);
598
+ pointer-events: none;
599
+ }
600
+
601
+
602
+ // 텍스트 서식
603
+ strong,
604
+ b {
605
+ font-weight: bold;
606
+ }
607
+
608
+ em,
609
+ i {
610
+ font-style: italic;
611
+ }
612
+
613
+ u {
614
+ text-decoration: underline;
615
+ }
616
+
617
+ s,
618
+ strike {
619
+ text-decoration: line-through;
620
+ }
621
+
622
+
623
+ // 제목 - podo-ui 스타일 상속
624
+ h1 {
625
+ @include typo.h1;
626
+ margin: 0.67em 0;
627
+ }
628
+
629
+ h2 {
630
+ @include typo.h2;
631
+ margin: 0.75em 0;
632
+ }
633
+
634
+ h3 {
635
+ @include typo.h3;
636
+ margin: 0.83em 0;
637
+ }
638
+
639
+ // p1~p5 스타일 클래스
640
+ // 일반 스타일
641
+ .p1 {
642
+ @include typo.p1;
643
+ }
644
+
645
+ .p2 {
646
+ @include typo.p2;
647
+ }
648
+
649
+ .p3 {
650
+ @include typo.p3;
651
+ }
652
+
653
+ .p4 {
654
+ @include typo.p4;
655
+ }
656
+
657
+ .p5 {
658
+ @include typo.p5;
659
+ }
660
+
661
+ // Semibold 스타일
662
+ .p1_semibold {
663
+ @include typo.p1;
664
+ font-weight: 600;
665
+ }
666
+
667
+ .p2_semibold {
668
+ @include typo.p2;
669
+ font-weight: 600;
670
+ }
671
+
672
+ .p3_semibold {
673
+ @include typo.p3-semibold;
674
+ }
675
+
676
+ .p4_semibold {
677
+ @include typo.p4-semibold;
678
+ }
679
+
680
+ .p5_semibold {
681
+ @include typo.p5-semibold;
682
+ }
683
+
684
+ // 단락 - 기본 본문 스타일 p3 적용
685
+ p {
686
+ @include typo.p3;
687
+ margin: 1em 0;
688
+
689
+ &:first-child {
690
+ margin-top: 0;
691
+ }
692
+
693
+ &:last-child {
694
+ margin-bottom: 0;
695
+ }
696
+ }
697
+
698
+ // 링크
699
+ a {
700
+ color: color(link);
701
+ text-decoration: underline;
702
+ cursor: pointer;
703
+
704
+ &:hover {
705
+ color: color(link-hover);
706
+ }
707
+ }
708
+
709
+ // 목록 - podo-ui p3 스타일 적용 및 reset 오버라이드
710
+ ul,
711
+ ol {
712
+ @include typo.p3;
713
+ margin: 1em 0 !important;
714
+ padding-left: 2em !important;
715
+ padding-top: 0 !important;
716
+ padding-right: 0 !important;
717
+ padding-bottom: 0 !important;
718
+
719
+ &:first-child {
720
+ margin-top: 0 !important;
721
+ }
722
+
723
+ &:last-child {
724
+ margin-bottom: 0 !important;
725
+ }
726
+ }
727
+
728
+ ul {
729
+ list-style: disc !important;
730
+ list-style-type: disc !important;
731
+ list-style-position: outside !important;
732
+ }
733
+
734
+ ol {
735
+ list-style: decimal !important;
736
+ list-style-type: decimal !important;
737
+ list-style-position: outside !important;
738
+ }
739
+
740
+ li {
741
+ display: list-item !important; // reset의 inline-block 오버라이드
742
+ margin: 0.5em 0 !important;
743
+ padding: 0 !important;
744
+ list-style: inherit !important;
745
+ list-style-position: outside !important;
746
+
747
+ // 중첩된 리스트
748
+ ul,
749
+ ol {
750
+ margin: 0.5em 0 !important;
751
+ padding-left: 1.5em !important;
752
+ }
753
+
754
+ ul {
755
+ list-style-type: circle !important;
756
+ }
757
+
758
+ ol {
759
+ list-style-type: lower-alpha !important;
760
+ }
761
+ }
762
+
763
+ // 에디터 내부 이미지는 inline-block으로 설정하여 정렬이 작동하도록 함
764
+ img {
765
+ display: inline-block !important;
766
+ vertical-align: middle;
767
+ max-width: 100%;
768
+ height: auto;
769
+ }
770
+
771
+ // 인용
772
+ blockquote {
773
+ @include typo.p3;
774
+ margin: 1em 0;
775
+ padding-left: 1em;
776
+ border-left: 4px solid color(border);
777
+ color: color(text-sub);
778
+ font-style: italic;
779
+ }
780
+ }
781
+
782
+ .validator {
783
+ padding: 8px 16px;
784
+ background: color(danger-fill);
785
+ color: color(danger);
786
+ font-size: 12px;
787
+ border-top: 1px solid color(danger-outline);
788
+ }
789
+
790
+ // 이미지 드롭다운
791
+ .imageDropdown {
792
+ position: fixed;
793
+ margin-top: 2px;
794
+ padding: 16px;
795
+ background: color(bg-modal);
796
+ border: 1px solid color(border);
797
+ border-radius: r(2);
798
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
799
+ z-index: 10000;
800
+ min-width: 360px;
801
+ max-height: 80vh;
802
+ overflow-y: auto;
803
+
804
+ .imageTabSection {
805
+ margin-bottom: 16px;
806
+
807
+ .imageTabButtons {
808
+ display: flex;
809
+ gap: 4px;
810
+ margin-bottom: 12px;
811
+ border-bottom: 1px solid color(border);
812
+
813
+ button {
814
+ flex: 1;
815
+ padding: 8px 12px;
816
+ background: transparent;
817
+ border: none;
818
+ border-bottom: 2px solid transparent;
819
+ border-radius: 0;
820
+ cursor: pointer;
821
+ font-size: 13px;
822
+ color: color(text-sub);
823
+ transition: all 0.15s;
824
+
825
+ &.active {
826
+ color: color(primary);
827
+ border-bottom-color: color(primary);
828
+ font-weight: 500;
79
829
  }
80
- &.underline {
81
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>');
830
+
831
+ &:hover {
832
+ color: color(text);
82
833
  }
83
- &.italic {
84
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>');
834
+ }
835
+ }
836
+
837
+ .imageFileSection {
838
+ .fileSelectButton {
839
+ width: 100%;
840
+ padding: 10px;
841
+ border: 1px dashed color(border);
842
+ border-radius: r(2);
843
+ background: color(bg-elevation);
844
+ cursor: pointer;
845
+ font-size: 13px;
846
+ transition: all 0.15s;
847
+
848
+ &:hover {
849
+ border-color: color(primary);
850
+ background: color(bg-modal);
85
851
  }
86
- &.strike {
87
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z"/></svg>');
852
+ }
853
+
854
+ .imagePreviewBox {
855
+ margin-top: 12px;
856
+ padding: 8px;
857
+ border: 1px solid color(border);
858
+ border-radius: r(2);
859
+ background: color(bg-elevation);
860
+
861
+ img {
862
+ width: 100%;
863
+ max-height: 150px;
864
+ object-fit: contain;
88
865
  }
89
- &.font {
90
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z"/></svg>');
866
+ }
867
+ }
868
+
869
+ .imageUrlSection {
870
+ input[type="text"] {
871
+ width: 100%;
872
+ padding: 8px 10px;
873
+ border: 1px solid color(border);
874
+ border-radius: r(2);
875
+ font-size: 13px;
876
+ transition: all 0.15s;
877
+
878
+ &:focus {
879
+ outline: none;
880
+ border-color: color(primary);
91
881
  }
92
- &.highlighter {
93
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z"/></svg>');
882
+ }
883
+ }
884
+ }
885
+
886
+ .imageOptions {
887
+ padding: 12px 0;
888
+ border-top: 1px solid color(border);
889
+ border-bottom: 1px solid color(border);
890
+
891
+ .imageOptionRow {
892
+ display: flex;
893
+ align-items: center;
894
+ margin-bottom: 10px;
895
+
896
+ &:last-child {
897
+ margin-bottom: 0;
898
+ }
899
+
900
+ label {
901
+ flex: 0 0 80px;
902
+ font-size: 12px;
903
+ color: color(text-sub);
904
+ font-weight: 500;
905
+ }
906
+
907
+ select,
908
+ input[type="text"] {
909
+ flex: 1;
910
+ padding: 6px 8px;
911
+ border: 1px solid color(border);
912
+ border-radius: r(2);
913
+ font-size: 12px;
914
+ transition: all 0.15s;
915
+
916
+ &:focus {
917
+ outline: none;
918
+ border-color: color(primary);
94
919
  }
95
- &.align-left {
96
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
920
+ }
921
+
922
+ // 크기 선택 버튼 그룹
923
+ .imageSizeButtons {
924
+ flex: 1;
925
+ display: flex;
926
+ gap: 4px;
927
+
928
+ button {
929
+ flex: 1;
930
+ padding: 6px 8px;
931
+ border: 1px solid color(border);
932
+ border-radius: r(2);
933
+ background: color(bg-modal);
934
+ color: color(text-sub);
935
+ font-size: 12px;
936
+ cursor: pointer;
937
+ transition: all 0.15s;
938
+
939
+ &:hover {
940
+ background: color(bg-elevation);
941
+ color: color(text-body);
942
+ }
943
+
944
+ &.active {
945
+ background: color(primary);
946
+ color: white;
947
+ border-color: color(primary);
948
+ }
97
949
  }
98
- &.align-center {
99
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>');
950
+ }
951
+
952
+ // 정렬 아이콘 버튼 그룹
953
+ .imageAlignButtons {
954
+ flex: 1;
955
+ display: flex;
956
+ gap: 4px;
957
+
958
+ button {
959
+ width: 32px;
960
+ height: 32px;
961
+ padding: 0;
962
+ border: 1px solid color(border);
963
+ border-radius: r(2);
964
+ background: color(bg-modal);
965
+ color: color(text-sub);
966
+ cursor: pointer;
967
+ display: flex;
968
+ align-items: center;
969
+ justify-content: center;
970
+ transition: all 0.15s;
971
+
972
+ i {
973
+ display: inline-block;
974
+ width: 14px;
975
+ height: 14px;
976
+ background-size: 14px 14px;
977
+ background-repeat: no-repeat;
978
+ background-position: center;
979
+
980
+ &.alignLeft {
981
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
982
+ }
983
+
984
+ &.alignCenter {
985
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>');
986
+ }
987
+
988
+ &.alignRight {
989
+ background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
990
+ }
991
+ }
992
+
993
+ &:hover {
994
+ background: color(bg-elevation);
995
+ color: color(text-body);
996
+
997
+ i {
998
+ filter: opacity(0.8);
999
+ }
1000
+ }
1001
+
1002
+ &.active {
1003
+ background: color(primary);
1004
+ color: white;
1005
+ border-color: color(primary);
1006
+
1007
+ i {
1008
+ filter: brightness(0) invert(1);
1009
+ }
1010
+ }
100
1011
  }
101
- &.align-right {
102
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>');
1012
+ }
1013
+ }
1014
+ }
1015
+
1016
+ .imageActions {
1017
+ display: flex;
1018
+ gap: 8px;
1019
+ justify-content: space-between;
1020
+ margin-top: 12px;
1021
+
1022
+ button {
1023
+ padding: 6px 12px;
1024
+ border: 1px solid color(border);
1025
+ border-radius: r(2);
1026
+ font-size: 12px;
1027
+ cursor: pointer;
1028
+ transition: all 0.15s;
1029
+
1030
+ &.primary {
1031
+ background-color: color(primary);
1032
+ color: white;
1033
+ border-color: color(primary);
1034
+
1035
+ &:hover:not(:disabled) {
1036
+ background-color: color(primary-hover);
1037
+ border-color: color(primary-hover);
103
1038
  }
104
- &.align-justify {
105
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"/></svg>');
1039
+
1040
+ &:disabled {
1041
+ opacity: 0.5;
1042
+ cursor: not-allowed;
106
1043
  }
107
- &.list-ul {
108
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"/></svg>');
1044
+ }
1045
+
1046
+ &.danger {
1047
+ background-color: color(danger);
1048
+ color: white;
1049
+ border-color: color(danger);
1050
+
1051
+ &:hover:not(:disabled) {
1052
+ background-color: color(danger-hover);
1053
+ border-color: color(danger-hover);
109
1054
  }
110
- &.list-ol {
111
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>');
1055
+ }
1056
+
1057
+ &.default {
1058
+ background-color: transparent;
1059
+ color: inherit;
1060
+ border-color: color(border);
1061
+
1062
+ &:hover:not(:disabled) {
1063
+ background-color: color(bg-elevation);
112
1064
  }
113
- &.table {
114
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z"/></svg>');
1065
+ }
1066
+ }
1067
+ }
1068
+ }
1069
+
1070
+ // 링크 수정 팝업
1071
+ .editLinkPopup {
1072
+ position: absolute;
1073
+ padding: 12px;
1074
+ background: color(bg-modal);
1075
+ border: 1px solid color(border);
1076
+ border-radius: r(2);
1077
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
1078
+ z-index: 1001;
1079
+ min-width: 300px;
1080
+
1081
+ .editLinkContent {
1082
+ .editLinkInput {
1083
+ margin-bottom: 12px;
1084
+
1085
+ label {
1086
+ display: block;
1087
+ font-size: 12px;
1088
+ color: color(text-sub);
1089
+ margin-bottom: 4px;
1090
+ font-weight: 500;
1091
+ }
1092
+
1093
+ input[type="text"] {
1094
+ width: 100%;
1095
+ padding: 8px 10px;
1096
+ border: 1px solid color(border);
1097
+ border-radius: r(2);
1098
+ font-size: 13px;
1099
+ transition: all 0.15s;
1100
+
1101
+ &:focus {
1102
+ outline: none;
1103
+ border-color: color(primary);
1104
+ box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.1);
115
1105
  }
116
- &.link {
117
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>');
1106
+ }
1107
+ }
1108
+
1109
+ .editLinkTarget {
1110
+ margin-bottom: 12px;
1111
+ padding: 8px 0;
1112
+ border-top: 1px solid color(border);
1113
+ border-bottom: 1px solid color(border);
1114
+
1115
+ label {
1116
+ display: flex;
1117
+ align-items: center;
1118
+ margin-bottom: 6px;
1119
+ font-size: 13px;
1120
+ cursor: pointer;
1121
+
1122
+ &:last-child {
1123
+ margin-bottom: 0;
118
1124
  }
119
- &.image {
120
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>');
1125
+
1126
+ input[type="radio"] {
1127
+ margin-right: 6px;
121
1128
  }
122
- &.video {
123
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z"/></svg>');
1129
+ }
1130
+ }
1131
+
1132
+ .editLinkActions {
1133
+ display: flex;
1134
+ gap: 8px;
1135
+ justify-content: space-between;
1136
+
1137
+ button {
1138
+ padding: 6px 12px;
1139
+ border: 1px solid color(border);
1140
+ border-radius: r(2);
1141
+ font-size: 12px;
1142
+ cursor: pointer;
1143
+ transition: all 0.15s;
1144
+
1145
+ &.primary {
1146
+ background-color: color(primary);
1147
+ color: white;
1148
+ border-color: color(primary);
1149
+
1150
+ &:hover:not(:disabled) {
1151
+ background-color: color(primary-hover);
1152
+ border-color: color(primary-hover);
1153
+ }
1154
+
1155
+ &:disabled {
1156
+ opacity: 0.5;
1157
+ cursor: not-allowed;
1158
+ }
124
1159
  }
125
- &.expand {
126
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z"/></svg>');
1160
+
1161
+ &.danger {
1162
+ background-color: color(danger);
1163
+ color: white;
1164
+ border-color: color(danger);
1165
+
1166
+ &:hover:not(:disabled) {
1167
+ background-color: color(danger-hover);
1168
+ border-color: color(danger-hover);
1169
+ }
127
1170
  }
128
- &.code {
129
- background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"/></svg>');
1171
+
1172
+ &.default {
1173
+ background-color: transparent;
1174
+ color: inherit;
1175
+ border-color: color(border);
1176
+
1177
+ &:hover:not(:disabled) {
1178
+ background-color: color(bg-elevation);
1179
+ }
130
1180
  }
131
1181
  }
132
1182
  }
133
1183
  }
134
1184
  }
1185
+
1186
+
1187
+
1188
+ // 코드 에디터
1189
+ .codeEditor {
1190
+ padding: 16px 20px;
1191
+ font-family: 'Courier New', monospace;
1192
+ font-size: 13px;
1193
+ line-height: 1.5;
1194
+ background: transparent;
1195
+ color: color(text-primary);
1196
+ border: none;
1197
+ outline: none;
1198
+ white-space: pre;
1199
+ overflow-y: auto;
1200
+ tab-size: 2;
1201
+ width: 100%;
1202
+ box-sizing: border-box;
1203
+ }