merge
This commit is contained in:
commit
35c9ab1d3b
56 changed files with 1617 additions and 357 deletions
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1833,6 +1833,7 @@
|
||||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
|
|
@ -2011,6 +2012,7 @@
|
||||||
"integrity": "sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==",
|
"integrity": "sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bufbuild/protobuf": "^2.5.0",
|
"@bufbuild/protobuf": "^2.5.0",
|
||||||
"buffer-builder": "^0.2.0",
|
"buffer-builder": "^0.2.0",
|
||||||
|
|
@ -2489,6 +2491,7 @@
|
||||||
"integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==",
|
"integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"fdir": "^6.5.0",
|
"fdir": "^6.5.0",
|
||||||
|
|
@ -2563,6 +2566,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz",
|
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz",
|
||||||
"integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==",
|
"integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vue/compiler-dom": "3.5.25",
|
"@vue/compiler-dom": "3.5.25",
|
||||||
"@vue/compiler-sfc": "3.5.25",
|
"@vue/compiler-sfc": "3.5.25",
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,59 @@
|
||||||
button {
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
border: 1px solid var(--color-browngray-300);
|
.unit-toggle{
|
||||||
color: var(--color-browngray-300);
|
button:not(.spinner-btn) {
|
||||||
background-color: var(--color-panel-bg);
|
cursor: pointer;
|
||||||
border-radius: var(--border-radius);
|
|
||||||
padding: 0.1rem 0.3rem;
|
border: 1px solid var(--color-interface-400);
|
||||||
|
color: var(--color-interface-400);
|
||||||
|
background-color: var(--color-panel-bg);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
padding: 0.1rem 0.3rem;
|
||||||
|
height: calc(var(--input-h)*0.75);
|
||||||
|
|
||||||
|
|
||||||
&.active {
|
&:not(.active):hover{
|
||||||
border: 1px solid #000;
|
background-color: var(--color-interface-100);
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.tab {
|
|
||||||
&.active {
|
|
||||||
background-color: #000;
|
|
||||||
color: #fff;
|
|
||||||
border: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
// border: 1px solid var(--color-interface-700);
|
||||||
|
color: var(--color-interface-050);
|
||||||
|
background-color: var(--color-interface-500);
|
||||||
|
cursor: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#editor-panel .tabs{
|
||||||
|
.tab{
|
||||||
|
color: var(--color-interface-600);
|
||||||
|
font-size: 1rem;
|
||||||
|
font-family: var(--sans-serif);
|
||||||
|
height: var(--input-h);
|
||||||
|
padding: 0 1ch;
|
||||||
|
border: 1px solid currentColor;
|
||||||
|
border-radius: calc(var(--input-h));
|
||||||
|
font-weight: 500;
|
||||||
|
|
||||||
|
&.active{
|
||||||
|
background-color: var(--color-interface-400);
|
||||||
|
border-color: var(--color-interface-400);
|
||||||
|
color: var(--color-panel-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.active):hover{
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: var(--color-interface-100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// .tab {
|
||||||
|
// &.active {
|
||||||
|
// background-color: var(--color-txt);
|
||||||
|
// color: #fff;
|
||||||
|
// border: none;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
|
||||||
105
public/assets/css/src/_colors.scss
Normal file
105
public/assets/css/src/_colors.scss
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
:root{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// BRONZE SUBTIL
|
||||||
|
--color-interface-050: #f5f0ed;
|
||||||
|
--color-interface-050: #f8f5f4;
|
||||||
|
--color-interface-100: #efe9e6;
|
||||||
|
--color-interface-200: #e0d5d0;
|
||||||
|
--color-interface-300: #cabbb5;
|
||||||
|
--color-interface-400: #b2a29c;
|
||||||
|
--color-interface-500: #998985;
|
||||||
|
--color-interface-600: #7f716e;
|
||||||
|
--color-interface-700: #675b58;
|
||||||
|
--color-interface-800: #5b4f4c;
|
||||||
|
--color-interface-900: #483c39;
|
||||||
|
|
||||||
|
|
||||||
|
--color-050: #f5f0ed;
|
||||||
|
--color-050: #f8f5f4;
|
||||||
|
--color-100: #efe9e6;
|
||||||
|
--color-200: #e0d5d0;
|
||||||
|
--color-300: #cabbb5;
|
||||||
|
--color-400: #b2a29c;
|
||||||
|
--color-500: #998985;
|
||||||
|
--color-600: #7f716e;
|
||||||
|
--color-700: #675b58;
|
||||||
|
--color-800: #5b4f4c;
|
||||||
|
--color-900: #483c39;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// MARRON
|
||||||
|
// --color-interface-050: #fcf7f4;
|
||||||
|
// --color-interface-100: #f5eae4;
|
||||||
|
// --color-interface-200: #e9d4c8;
|
||||||
|
// --color-interface-300: #d8b7a6;
|
||||||
|
// --color-interface-400: #c39986;
|
||||||
|
// --color-interface-500: #ad826f;
|
||||||
|
// --color-interface-600: #916b5b;
|
||||||
|
// --color-interface-700: #755548;
|
||||||
|
// --color-interface-800: #5c443a;
|
||||||
|
// --color-interface-900: #46342b;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// CHAMPAGNE
|
||||||
|
// --color-interface-050: #f9f6f4;
|
||||||
|
// --color-interface-100: #f2ebe6;
|
||||||
|
// --color-interface-200: #e6d8cf;
|
||||||
|
// --color-interface-300: #d4c2b7;
|
||||||
|
// --color-interface-400: #c2ac9d;
|
||||||
|
// --color-interface-500: #ac9383;
|
||||||
|
// --color-interface-600: #927a6a;
|
||||||
|
// --color-interface-700: #776356;
|
||||||
|
// --color-interface-800: #5e4e45;
|
||||||
|
// --color-interface-900: #473a32;
|
||||||
|
|
||||||
|
// GREY
|
||||||
|
// --color-interface-050: #f7f6f4;
|
||||||
|
// --color-interface-100: #eceae6;
|
||||||
|
// --color-interface-200: #dedbd6;
|
||||||
|
// --color-interface-300: #c9c5be;
|
||||||
|
// --color-interface-400: #b4afa7;
|
||||||
|
// --color-interface-500: #9d978f;
|
||||||
|
// --color-interface-600: #86817a;
|
||||||
|
// --color-interface-700: #6e6a63;
|
||||||
|
// --color-interface-800: #55534d;
|
||||||
|
// --color-interface-900: #3e3c37;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[data-color-type="elem"]{
|
||||||
|
--color-050: #fff4ec;
|
||||||
|
--color-100: #ffe6d6;
|
||||||
|
--color-200: #ffd1b5;
|
||||||
|
--color-300: #ffbc94;
|
||||||
|
--color-400: #ffa673;
|
||||||
|
--color-500: #ff945b;
|
||||||
|
--color-600: #ff8d54;
|
||||||
|
--color-700: #f97f46;
|
||||||
|
--color-800: #ff8a50;
|
||||||
|
--color-900: #d96a30;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[data-color-type="page"]{
|
||||||
|
--color-050: #f4f0ff;
|
||||||
|
--color-100: #e7e1ff;
|
||||||
|
--color-200: #d4c8ff;
|
||||||
|
--color-300: #b9a8ff;
|
||||||
|
--color-400: #9f89ff;
|
||||||
|
--color-500: #866aff;
|
||||||
|
--color-600: #7a52ff;
|
||||||
|
--color-700: #7442ff;
|
||||||
|
--color-800: #7136ff;
|
||||||
|
--color-900: #5223d6;
|
||||||
|
}
|
||||||
162
public/assets/css/src/_fonts.scss
Normal file
162
public/assets/css/src/_fonts.scss
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
// DM Sans - Variable font (recommended)
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans[opsz,wght].woff2') format('woff2-variations');
|
||||||
|
font-weight: 100 1000;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Italic[opsz,wght].woff2') format('woff2-variations');
|
||||||
|
font-weight: 100 1000;
|
||||||
|
font-style: italic;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DM Sans - Static weights (fallback)
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Thin.woff2') format('woff2');
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-ExtraLight.woff2') format('woff2');
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Light.woff2') format('woff2');
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Regular.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Medium.woff2') format('woff2');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-SemiBold.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Bold.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-ExtraBold.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DM Sans';
|
||||||
|
src: url('/assets/fonts/DMSans/DMSans-Black.woff2') format('woff2');
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inconsolata - Monospace font
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Thin.woff2') format('woff2');
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-ExtraLight.woff2') format('woff2');
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Light.woff2') format('woff2');
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Regular.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Medium.woff2') format('woff2');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-SemiBold.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Bold.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-ExtraBold.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('/assets/fonts/Inconsolata/Inconsolata-Black.woff2') format('woff2');
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
56
public/assets/css/src/_forms-section.scss
Normal file
56
public/assets/css/src/_forms-section.scss
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
.settings-section {
|
||||||
|
|
||||||
|
margin-top: 3em;
|
||||||
|
|
||||||
|
|
||||||
|
// .cons
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-bottom: var(--space);
|
||||||
|
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
// border-radius: var(--border-radius);
|
||||||
|
// height: var(--input-h);
|
||||||
|
// padding: 0 1ch;
|
||||||
|
// display: flex;
|
||||||
|
// align-items: center;
|
||||||
|
|
||||||
|
// color: var(--color-interface-050);
|
||||||
|
// background-color: var(--color-800);
|
||||||
|
// display: inline-block;
|
||||||
|
|
||||||
|
border-bottom: 1px solid var(--color-200);
|
||||||
|
color: var(--color-800);
|
||||||
|
|
||||||
|
// border-bottom: 2px solid currentColor;
|
||||||
|
// margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infos{
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--color-interface-400);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-subsection:not(:last-child) {
|
||||||
|
border-bottom: 1px solid var(--color-interface-100);
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-subsection {
|
||||||
|
padding: var(--space-xs) 0;
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin-top: calc(var(--space-xs)*1.5);
|
||||||
|
margin-bottom: calc(var(--space-xs)*2);
|
||||||
|
// color: var(--color-600);
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,17 +1,132 @@
|
||||||
select,
|
select,
|
||||||
input[type="text"],
|
input[type="text"],
|
||||||
input[type="number"] {
|
input[type="number"] {
|
||||||
background-color: var(--color-browngray-300);
|
height: var(--input-h);
|
||||||
|
border: 1px solid var(--color-interface-200);
|
||||||
|
background-color: var(--color-interface-100);
|
||||||
|
font-family: var(--sans-serif);
|
||||||
|
font-size: 1rem;
|
||||||
|
// min-width: var(--input-w);
|
||||||
|
// width: 100%;
|
||||||
|
// padding: 0 1ch;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.field {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
// label{
|
||||||
|
// width: var(--label-w);
|
||||||
|
// background-color: red;
|
||||||
|
// flex-grow: 3;
|
||||||
|
// }
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--color-800);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.input-with-unit {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.3rem;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.unit-toggle {
|
||||||
|
height: var(--input-h);
|
||||||
|
display: flex;
|
||||||
|
gap: 0.3rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-with-color {
|
||||||
|
width: 100%;
|
||||||
|
.clr-field {
|
||||||
|
width: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--input-h);
|
||||||
|
grid-gap: 1ch;
|
||||||
|
button{
|
||||||
|
grid-column: 1;
|
||||||
|
position: relative;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
|
||||||
|
}
|
||||||
|
input{
|
||||||
|
grid-column: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.field{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--label-w) 1fr;
|
||||||
|
label{
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-font{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--label-w) 1fr;
|
||||||
|
grid-template-rows: var(--input-h) var(--input-h);
|
||||||
|
|
||||||
|
select{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.field-checkbox{
|
||||||
|
padding-top: var(--space-xs);
|
||||||
|
label{
|
||||||
|
font-weight: 400;
|
||||||
|
margin-left: 0.75ch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-margin, .field-size{
|
||||||
|
display: inline-grid;
|
||||||
|
width: calc(50% - 1ch);
|
||||||
|
grid-template-columns: 6.5ch var(--input-w-small) 1fr;
|
||||||
|
margin-bottom: var(--space-xs);
|
||||||
|
input{
|
||||||
|
width: var(--input-w-small);
|
||||||
|
padding-left: 0.75ch;
|
||||||
|
}
|
||||||
|
&:nth-of-type(odd){
|
||||||
|
margin-right: 2ch;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-field{
|
||||||
|
margin: calc(var(--space-xs)*2) 0;
|
||||||
|
grid-template-columns: 3ch 1fr;
|
||||||
|
label{
|
||||||
|
// font-weight: normal;
|
||||||
|
}
|
||||||
|
input{
|
||||||
|
justify-self: left;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.field--view-only {
|
.field--view-only {
|
||||||
opacity: 0.3;
|
opacity: 0.3;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Label with CSS tooltip */
|
/* Label with CSS tooltip */
|
||||||
.label-with-tooltip {
|
.label-with-tooltip {
|
||||||
text-decoration: underline dotted;
|
text-decoration: underline dotted 1px var(--color-200);
|
||||||
text-decoration-color: var(--color-browngray-200);
|
|
||||||
text-underline-offset: 2px;
|
text-underline-offset: 2px;
|
||||||
cursor: help;
|
cursor: help;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -23,9 +138,9 @@ input[type="number"] {
|
||||||
left: 0;
|
left: 0;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
padding: 0.25rem 0.5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
background: var(--color-browngray-700);
|
background: var(--color-interface-700);
|
||||||
color: var(--color-browngray-100);
|
color: var(--color-interface-050);
|
||||||
font-family: "Courier New", Courier, monospace;
|
font-family: var(--mono);
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
@ -43,86 +158,127 @@ input[type="number"] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-section {
|
|
||||||
h2 {
|
|
||||||
border-bottom: 1px solid #000;
|
|
||||||
margin-bottom: var(--space-xs);
|
|
||||||
}
|
|
||||||
.settings-subsection:not(:last-child) {
|
|
||||||
border-bottom: 1px solid var(--color-browngray-050);
|
|
||||||
}
|
|
||||||
|
|
||||||
.settings-subsection {
|
|
||||||
padding: var(--space-xs) 0;
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
margin-bottom: var(--space-xs);
|
|
||||||
}
|
|
||||||
|
|
||||||
.field {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
label,
|
|
||||||
select {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
padding: 0.1rem 0.1rem 0.1rem 0.3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-with-unit {
|
// INPUT NUMBER ===============================================
|
||||||
display: flex;
|
|
||||||
gap: 0.3rem;
|
|
||||||
|
|
||||||
.unit-toggle {
|
// Masquer les spinners natifs partout
|
||||||
display: flex;
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
gap: 0.3rem;
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
}
|
-webkit-appearance: none;
|
||||||
}
|
appearance: none;
|
||||||
|
margin: 0;
|
||||||
.input-with-color {
|
|
||||||
width: 50%;
|
|
||||||
.clr-field {
|
|
||||||
display: flex;
|
|
||||||
button {
|
|
||||||
position: absolute;
|
|
||||||
transform: none;
|
|
||||||
height: 1.1rem;
|
|
||||||
top: auto;
|
|
||||||
right: auto;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
input {
|
|
||||||
padding-left: 2.5rem;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.margins {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
row-gap: var(--space-xs);
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.field {
|
|
||||||
width: 50%;
|
|
||||||
|
|
||||||
label {
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-with-unit {
|
|
||||||
input {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type="number"] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.number-input{
|
||||||
|
position: relative;
|
||||||
|
// padding: 0 1ch!important;
|
||||||
|
input{
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.spinner-buttons{
|
||||||
|
height: var(--input-h);
|
||||||
|
width: var(--input-h);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
|
||||||
|
button{
|
||||||
|
height: calc(var(--input-h)*0.6);
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 0;
|
||||||
|
svg path{
|
||||||
|
fill: var(--color-interface-600);
|
||||||
|
}
|
||||||
|
&:hover{
|
||||||
|
svg path{
|
||||||
|
fill: var(--color-interface-900);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.spinner-down{
|
||||||
|
svg{
|
||||||
|
position: relative;
|
||||||
|
top: -2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// Composant NumberInput avec boutons personnalisés
|
||||||
|
// .number-input {
|
||||||
|
// position: relative;
|
||||||
|
// display: flex;
|
||||||
|
// align-items: center;
|
||||||
|
// width: 100%;
|
||||||
|
// position: relative;
|
||||||
|
|
||||||
|
// input[type="number"] {
|
||||||
|
// width: 100%;
|
||||||
|
// box-sizing: border-box;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .spinner-buttons {
|
||||||
|
// background-color: red;
|
||||||
|
// position: absolute;
|
||||||
|
// right: 1px;
|
||||||
|
// top: 1px;
|
||||||
|
// bottom: 1px;
|
||||||
|
// display: flex;
|
||||||
|
// flex-direction: column;
|
||||||
|
// justify-content: center;
|
||||||
|
// gap: 1px;
|
||||||
|
// z-index: 10;
|
||||||
|
|
||||||
|
// .spinner-btn {
|
||||||
|
// display: flex;
|
||||||
|
// align-items: center;
|
||||||
|
// justify-content: center;
|
||||||
|
// width: 20px;
|
||||||
|
// height: 10px;
|
||||||
|
// padding: 0;
|
||||||
|
// margin: 0;
|
||||||
|
// background-color: var(--color-interface-200);
|
||||||
|
// border: 1px solid var(--color-interface-300);
|
||||||
|
// border-radius: 2px;
|
||||||
|
// cursor: pointer;
|
||||||
|
// transition: background-color 0.15s ease;
|
||||||
|
// color: var(--color-interface-700);
|
||||||
|
// line-height: 0;
|
||||||
|
|
||||||
|
// svg {
|
||||||
|
// width: 8px;
|
||||||
|
// height: 6px;
|
||||||
|
// display: block;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// &:hover:not(:disabled) {
|
||||||
|
// background-color: var(--color-interface-300);
|
||||||
|
// color: var(--color-interface-900);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// &:active:not(:disabled) {
|
||||||
|
// background-color: var(--color-interface-400);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// &:disabled {
|
||||||
|
// opacity: 0.3;
|
||||||
|
// cursor: not-allowed;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
|
||||||
|
|
@ -60,38 +60,38 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Label with CSS tooltip
|
// Label with CSS tooltip
|
||||||
.label-with-tooltip {
|
// .label-with-tooltip {
|
||||||
text-decoration: underline dotted;
|
// text-decoration: underline dotted;
|
||||||
text-underline-offset: 2px;
|
// text-underline-offset: 2px;
|
||||||
cursor: help;
|
// cursor: help;
|
||||||
position: relative;
|
// position: relative;
|
||||||
|
|
||||||
&::after {
|
// &::after {
|
||||||
content: attr(data-css);
|
// content: attr(data-css);
|
||||||
position: absolute;
|
// position: absolute;
|
||||||
bottom: 100%;
|
// bottom: 100%;
|
||||||
left: 0;
|
// left: 0;
|
||||||
margin-bottom: 4px;
|
// margin-bottom: 4px;
|
||||||
padding: 0.25rem 0.5rem;
|
// padding: 0.25rem 0.5rem;
|
||||||
background: var(--color-browngray-700, #3d3d3d);
|
// background: var(--color-browngray-700, #3d3d3d);
|
||||||
color: var(--color-browngray-100, #f5f5f5);
|
// color: var(--color-browngray-100, #f5f5f5);
|
||||||
font-family: "Courier New", Courier, monospace;
|
// font-family: "Courier New", Courier, monospace;
|
||||||
font-size: 0.75rem;
|
// font-size: 0.75rem;
|
||||||
border-radius: 4px;
|
// border-radius: 4px;
|
||||||
white-space: nowrap;
|
// white-space: nowrap;
|
||||||
opacity: 0;
|
// opacity: 0;
|
||||||
visibility: hidden;
|
// visibility: hidden;
|
||||||
transition:
|
// transition:
|
||||||
opacity 0.15s ease,
|
// opacity 0.15s ease,
|
||||||
visibility 0.15s ease;
|
// visibility 0.15s ease;
|
||||||
z-index: 10;
|
// z-index: 10;
|
||||||
}
|
// }
|
||||||
|
|
||||||
&:hover::after {
|
// &:hover::after {
|
||||||
opacity: 1;
|
// opacity: 1;
|
||||||
visibility: visible;
|
// visibility: visible;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Inheritance lock/unlock button
|
// Inheritance lock/unlock button
|
||||||
.inheritance-btn {
|
.inheritance-btn {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,10 @@
|
||||||
body,
|
body {
|
||||||
h1,
|
font-family: var(--sans-serif);
|
||||||
h2,
|
color: var(--color-txt);
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6,
|
|
||||||
p,
|
|
||||||
a,
|
|
||||||
input,
|
|
||||||
select,
|
|
||||||
figcaption,
|
|
||||||
label {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// code,
|
||||||
|
// pre,
|
||||||
|
// .monospace {
|
||||||
|
// font-family: 'Inconsolata', monospace;
|
||||||
|
// }
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,37 @@
|
||||||
:root {
|
:root {
|
||||||
--color-panel-bg: #e8e6e5;
|
|
||||||
|
|
||||||
|
|
||||||
--color-browngray-050: #f5f3f0;
|
--color-browngray-050: #f5f3f0;
|
||||||
--color-browngray-200: #d0c4ba;
|
--color-browngray-200: #d0c4ba;
|
||||||
--color-browngray-300: #b5a9a1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--color-txt: var(--color-interface-800);
|
||||||
|
--color-panel-bg: var(--color-interface-050);
|
||||||
|
|
||||||
--color-page-highlight: #ff8a50;
|
--color-page-highlight: #ff8a50;
|
||||||
--color-purple: #7136ff;
|
--color-purple: #7136ff;
|
||||||
|
|
||||||
--border-radius: 0.2rem;
|
--border-radius: 0.2rem;
|
||||||
|
|
||||||
--space-xs: 0.5rem;
|
--space-xs: 0.5rem;
|
||||||
|
--space-s: 1rem;
|
||||||
|
--space: 1.5rem;
|
||||||
|
|
||||||
--curve: cubic-bezier(0.86, 0, 0.07, 1);
|
--curve: cubic-bezier(0.86, 0, 0.07, 1);
|
||||||
|
|
||||||
|
--sans-serif: 'DM Sans', sans-serif;
|
||||||
|
--mono: 'Inconsolata', monospace;
|
||||||
|
|
||||||
|
|
||||||
|
--input-h: 26px;
|
||||||
|
--input-w: 160px;
|
||||||
|
--input-w-small: 45px;
|
||||||
|
--label-w: 18ch;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
--panel-w: 540px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,194 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans[opsz,wght].woff2") format("woff2-variations");
|
||||||
|
font-weight: 100 1000;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Italic[opsz,wght].woff2") format("woff2-variations");
|
||||||
|
font-weight: 100 1000;
|
||||||
|
font-style: italic;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Thin.woff2") format("woff2");
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-ExtraLight.woff2") format("woff2");
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Light.woff2") format("woff2");
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Regular.woff2") format("woff2");
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Medium.woff2") format("woff2");
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-SemiBold.woff2") format("woff2");
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Bold.woff2") format("woff2");
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-ExtraBold.woff2") format("woff2");
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DM Sans";
|
||||||
|
src: url("/assets/fonts/DMSans/DMSans-Black.woff2") format("woff2");
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Thin.woff2") format("woff2");
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-ExtraLight.woff2") format("woff2");
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Light.woff2") format("woff2");
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Regular.woff2") format("woff2");
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Medium.woff2") format("woff2");
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-SemiBold.woff2") format("woff2");
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Bold.woff2") format("woff2");
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-ExtraBold.woff2") format("woff2");
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "Inconsolata";
|
||||||
|
src: url("/assets/fonts/Inconsolata/Inconsolata-Black.woff2") format("woff2");
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
:root {
|
||||||
|
--color-interface-050: #f5f0ed;
|
||||||
|
--color-interface-050: #f8f5f4;
|
||||||
|
--color-interface-100: #efe9e6;
|
||||||
|
--color-interface-200: #e0d5d0;
|
||||||
|
--color-interface-300: #cabbb5;
|
||||||
|
--color-interface-400: #b2a29c;
|
||||||
|
--color-interface-500: #998985;
|
||||||
|
--color-interface-600: #7f716e;
|
||||||
|
--color-interface-700: #675b58;
|
||||||
|
--color-interface-800: #5b4f4c;
|
||||||
|
--color-interface-900: #483c39;
|
||||||
|
--color-050: #f5f0ed;
|
||||||
|
--color-050: #f8f5f4;
|
||||||
|
--color-100: #efe9e6;
|
||||||
|
--color-200: #e0d5d0;
|
||||||
|
--color-300: #cabbb5;
|
||||||
|
--color-400: #b2a29c;
|
||||||
|
--color-500: #998985;
|
||||||
|
--color-600: #7f716e;
|
||||||
|
--color-700: #675b58;
|
||||||
|
--color-800: #5b4f4c;
|
||||||
|
--color-900: #483c39;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-type=elem] {
|
||||||
|
--color-050: #fff4ec;
|
||||||
|
--color-100: #ffe6d6;
|
||||||
|
--color-200: #ffd1b5;
|
||||||
|
--color-300: #ffbc94;
|
||||||
|
--color-400: #ffa673;
|
||||||
|
--color-500: #ff945b;
|
||||||
|
--color-600: #ff8d54;
|
||||||
|
--color-700: #f97f46;
|
||||||
|
--color-800: #ff8a50;
|
||||||
|
--color-900: #d96a30;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-type=page] {
|
||||||
|
--color-050: #f4f0ff;
|
||||||
|
--color-100: #e7e1ff;
|
||||||
|
--color-200: #d4c8ff;
|
||||||
|
--color-300: #b9a8ff;
|
||||||
|
--color-400: #9f89ff;
|
||||||
|
--color-500: #866aff;
|
||||||
|
--color-600: #7a52ff;
|
||||||
|
--color-700: #7442ff;
|
||||||
|
--color-800: #7136ff;
|
||||||
|
--color-900: #5223d6;
|
||||||
|
}
|
||||||
|
|
||||||
body,
|
body,
|
||||||
html {
|
html {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
@ -30,31 +221,30 @@ img {
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--color-panel-bg: #e8e6e5;
|
|
||||||
--color-browngray-050: #f5f3f0;
|
--color-browngray-050: #f5f3f0;
|
||||||
--color-browngray-200: #d0c4ba;
|
--color-browngray-200: #d0c4ba;
|
||||||
--color-browngray-300: #b5a9a1;
|
--color-txt: var(--color-interface-800);
|
||||||
|
--color-panel-bg: var(--color-interface-050);
|
||||||
--color-page-highlight: #ff8a50;
|
--color-page-highlight: #ff8a50;
|
||||||
--color-purple: #7136ff;
|
--color-purple: #7136ff;
|
||||||
--border-radius: 0.2rem;
|
--border-radius: 0.2rem;
|
||||||
--space-xs: 0.5rem;
|
--space-xs: 0.5rem;
|
||||||
|
--space-s: 1rem;
|
||||||
|
--space: 1.5rem;
|
||||||
--curve: cubic-bezier(0.86, 0, 0.07, 1);
|
--curve: cubic-bezier(0.86, 0, 0.07, 1);
|
||||||
|
--sans-serif: "DM Sans", sans-serif;
|
||||||
|
--mono: "Inconsolata", monospace;
|
||||||
|
--input-h: 26px;
|
||||||
|
--input-w: 160px;
|
||||||
|
--input-w-small: 45px;
|
||||||
|
--label-w: 18ch;
|
||||||
|
font-size: 14px;
|
||||||
|
--panel-w: 540px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body,
|
body {
|
||||||
h1,
|
font-family: var(--sans-serif);
|
||||||
h2,
|
color: var(--color-txt);
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6,
|
|
||||||
p,
|
|
||||||
a,
|
|
||||||
input,
|
|
||||||
select,
|
|
||||||
figcaption,
|
|
||||||
label {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* PagedJS print styles */
|
/* PagedJS print styles */
|
||||||
|
|
@ -79,7 +269,93 @@ h2 {
|
||||||
select,
|
select,
|
||||||
input[type=text],
|
input[type=text],
|
||||||
input[type=number] {
|
input[type=number] {
|
||||||
background-color: var(--color-browngray-300);
|
height: var(--input-h);
|
||||||
|
border: 1px solid var(--color-interface-200);
|
||||||
|
background-color: var(--color-interface-100);
|
||||||
|
font-family: var(--sans-serif);
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.field label {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--color-800);
|
||||||
|
}
|
||||||
|
.field .input-with-unit {
|
||||||
|
display: flex;
|
||||||
|
gap: 0.3rem;
|
||||||
|
}
|
||||||
|
.field .unit-toggle {
|
||||||
|
height: var(--input-h);
|
||||||
|
display: flex;
|
||||||
|
gap: 0.3rem;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.field .input-with-color {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.field .input-with-color .clr-field {
|
||||||
|
width: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--input-h);
|
||||||
|
grid-gap: 1ch;
|
||||||
|
}
|
||||||
|
.field .input-with-color .clr-field button {
|
||||||
|
grid-column: 1;
|
||||||
|
position: relative;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
.field .input-with-color .clr-field input {
|
||||||
|
grid-column: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--label-w) 1fr;
|
||||||
|
}
|
||||||
|
.field label {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-font {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: var(--label-w) 1fr;
|
||||||
|
grid-template-rows: var(--input-h) var(--input-h);
|
||||||
|
}
|
||||||
|
.field-font select {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.field-font .field-checkbox {
|
||||||
|
padding-top: var(--space-xs);
|
||||||
|
}
|
||||||
|
.field-font .field-checkbox label {
|
||||||
|
font-weight: 400;
|
||||||
|
margin-left: 0.75ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-margin, .field-size {
|
||||||
|
display: inline-grid;
|
||||||
|
width: calc(50% - 1ch);
|
||||||
|
grid-template-columns: 6.5ch var(--input-w-small) 1fr;
|
||||||
|
margin-bottom: var(--space-xs);
|
||||||
|
}
|
||||||
|
.field-margin input, .field-size input {
|
||||||
|
width: var(--input-w-small);
|
||||||
|
padding-left: 0.75ch;
|
||||||
|
}
|
||||||
|
.field-margin:nth-of-type(odd), .field-size:nth-of-type(odd) {
|
||||||
|
margin-right: 2ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-field {
|
||||||
|
margin: calc(var(--space-xs) * 2) 0;
|
||||||
|
grid-template-columns: 3ch 1fr;
|
||||||
|
}
|
||||||
|
.checkbox-field input {
|
||||||
|
justify-self: left;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.field--view-only {
|
.field--view-only {
|
||||||
|
|
@ -88,9 +364,8 @@ input[type=number] {
|
||||||
|
|
||||||
/* Label with CSS tooltip */
|
/* Label with CSS tooltip */
|
||||||
.label-with-tooltip {
|
.label-with-tooltip {
|
||||||
-webkit-text-decoration: underline dotted;
|
-webkit-text-decoration: underline dotted 1px var(--color-200);
|
||||||
text-decoration: underline dotted;
|
text-decoration: underline dotted 1px var(--color-200);
|
||||||
text-decoration-color: var(--color-browngray-200);
|
|
||||||
text-underline-offset: 2px;
|
text-underline-offset: 2px;
|
||||||
cursor: help;
|
cursor: help;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
@ -102,9 +377,9 @@ input[type=number] {
|
||||||
left: 0;
|
left: 0;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
padding: 0.25rem 0.5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
background: var(--color-browngray-700);
|
background: var(--color-interface-700);
|
||||||
color: var(--color-browngray-100);
|
color: var(--color-interface-050);
|
||||||
font-family: "Courier New", Courier, monospace;
|
font-family: var(--mono);
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
@ -118,89 +393,112 @@ input[type=number] {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type=number]::-webkit-inner-spin-button,
|
||||||
|
input[type=number]::-webkit-outer-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=number] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
.number-input {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.number-input input {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.number-input .spinner-buttons {
|
||||||
|
height: var(--input-h);
|
||||||
|
width: var(--input-h);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.number-input .spinner-buttons button {
|
||||||
|
height: calc(var(--input-h) * 0.6);
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.number-input .spinner-buttons button svg path {
|
||||||
|
fill: var(--color-interface-600);
|
||||||
|
}
|
||||||
|
.number-input .spinner-buttons button:hover svg path {
|
||||||
|
fill: var(--color-interface-900);
|
||||||
|
}
|
||||||
|
.number-input .spinner-buttons .spinner-down svg {
|
||||||
|
position: relative;
|
||||||
|
top: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings-section {
|
||||||
|
margin-top: 3em;
|
||||||
|
}
|
||||||
.settings-section h2 {
|
.settings-section h2 {
|
||||||
border-bottom: 1px solid #000;
|
margin-bottom: var(--space);
|
||||||
margin-bottom: var(--space-xs);
|
font-weight: 600;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
border-bottom: 1px solid var(--color-200);
|
||||||
|
color: var(--color-800);
|
||||||
|
}
|
||||||
|
.settings-section .infos {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--color-interface-400);
|
||||||
}
|
}
|
||||||
.settings-section .settings-subsection:not(:last-child) {
|
.settings-section .settings-subsection:not(:last-child) {
|
||||||
border-bottom: 1px solid var(--color-browngray-050);
|
border-bottom: 1px solid var(--color-interface-100);
|
||||||
}
|
}
|
||||||
.settings-section .settings-subsection {
|
.settings-section .settings-subsection {
|
||||||
padding: var(--space-xs) 0;
|
padding: var(--space-xs) 0;
|
||||||
}
|
}
|
||||||
.settings-section .settings-subsection h3 {
|
.settings-section .settings-subsection h3 {
|
||||||
margin-bottom: var(--space-xs);
|
margin-top: calc(var(--space-xs) * 1.5);
|
||||||
}
|
margin-bottom: calc(var(--space-xs) * 2);
|
||||||
.settings-section .settings-subsection .field {
|
font-size: 1rem;
|
||||||
display: flex;
|
font-weight: 600;
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field label,
|
|
||||||
.settings-section .settings-subsection .field select {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field input {
|
|
||||||
padding: 0.1rem 0.1rem 0.1rem 0.3rem;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-unit {
|
|
||||||
display: flex;
|
|
||||||
gap: 0.3rem;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-unit .unit-toggle {
|
|
||||||
display: flex;
|
|
||||||
gap: 0.3rem;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-color {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-color .clr-field {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-color .clr-field button {
|
|
||||||
position: absolute;
|
|
||||||
transform: none;
|
|
||||||
height: 1.1rem;
|
|
||||||
top: auto;
|
|
||||||
right: auto;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection .field .input-with-color .clr-field input {
|
|
||||||
padding-left: 2.5rem;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection.margins {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
row-gap: var(--space-xs);
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection.margins h3 {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection.margins .field {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection.margins .field label {
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
.settings-section .settings-subsection.margins .field .input-with-unit input {
|
|
||||||
width: 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
.unit-toggle button:not(.spinner-btn) {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 1px solid var(--color-browngray-300);
|
border: 1px solid var(--color-interface-400);
|
||||||
color: var(--color-browngray-300);
|
color: var(--color-interface-400);
|
||||||
background-color: var(--color-panel-bg);
|
background-color: var(--color-panel-bg);
|
||||||
border-radius: var(--border-radius);
|
border-radius: var(--border-radius);
|
||||||
padding: 0.1rem 0.3rem;
|
padding: 0.1rem 0.3rem;
|
||||||
|
height: calc(var(--input-h) * 0.75);
|
||||||
}
|
}
|
||||||
button.active {
|
.unit-toggle button:not(.spinner-btn):not(.active):hover {
|
||||||
border: 1px solid #000;
|
background-color: var(--color-interface-100);
|
||||||
color: #000;
|
|
||||||
}
|
}
|
||||||
button.tab.active {
|
.unit-toggle button:not(.spinner-btn).active {
|
||||||
background-color: #000;
|
color: var(--color-interface-050);
|
||||||
color: #fff;
|
background-color: var(--color-interface-500);
|
||||||
border: none;
|
cursor: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#editor-panel .tabs .tab {
|
||||||
|
color: var(--color-interface-600);
|
||||||
|
font-size: 1rem;
|
||||||
|
font-family: var(--sans-serif);
|
||||||
|
height: var(--input-h);
|
||||||
|
padding: 0 1ch;
|
||||||
|
border: 1px solid currentColor;
|
||||||
|
border-radius: calc(var(--input-h));
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
#editor-panel .tabs .tab.active {
|
||||||
|
background-color: var(--color-interface-400);
|
||||||
|
border-color: var(--color-interface-400);
|
||||||
|
color: var(--color-panel-bg);
|
||||||
|
}
|
||||||
|
#editor-panel .tabs .tab:not(.active):hover {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: var(--color-interface-100);
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-popup {
|
.settings-popup {
|
||||||
|
|
@ -262,36 +560,6 @@ button.tab.active {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label-with-tooltip {
|
|
||||||
-webkit-text-decoration: underline dotted;
|
|
||||||
text-decoration: underline dotted;
|
|
||||||
text-underline-offset: 2px;
|
|
||||||
cursor: help;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.label-with-tooltip::after {
|
|
||||||
content: attr(data-css);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 100%;
|
|
||||||
left: 0;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
padding: 0.25rem 0.5rem;
|
|
||||||
background: var(--color-browngray-700, #3d3d3d);
|
|
||||||
color: var(--color-browngray-100, #f5f5f5);
|
|
||||||
font-family: "Courier New", Courier, monospace;
|
|
||||||
font-size: 0.75rem;
|
|
||||||
border-radius: 4px;
|
|
||||||
white-space: nowrap;
|
|
||||||
opacity: 0;
|
|
||||||
visibility: hidden;
|
|
||||||
transition: opacity 0.15s ease, visibility 0.15s ease;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
.label-with-tooltip:hover::after {
|
|
||||||
opacity: 1;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inheritance-btn {
|
.inheritance-btn {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,10 @@
|
||||||
@import "src/_reset.scss";
|
@use "src/_fonts.scss" as *;
|
||||||
@import "src/_variables.scss";
|
@use "src/_colors.scss" as *;
|
||||||
@import "src/_text.scss";
|
@use "src/_reset.scss" as *;
|
||||||
@import "src/_print-styles.scss";
|
@use "src/_variables.scss" as *;
|
||||||
@import "src/_forms.scss";
|
@use "src/_text.scss" as *;
|
||||||
@import "src/_buttons.scss";
|
@use "src/_print-styles.scss" as *;
|
||||||
@import "src/_settings-popup.scss";
|
@use "src/_forms.scss" as *;
|
||||||
|
@use "src/_forms-section.scss" as *;
|
||||||
|
@use "src/_buttons.scss" as *;
|
||||||
|
@use "src/_settings-popup.scss" as *;
|
||||||
|
|
|
||||||
BIN
public/assets/fonts/DMSans/DMSans-Black.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Black.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-BlackItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-BlackItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Bold.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Bold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-BoldItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraBlack.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraBlack.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraBlackItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraBlackItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraBold.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraBold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraBoldItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraBoldItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraLight.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraLight.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ExtraLightItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ExtraLightItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Italic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Italic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Italic[opsz,wght].woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Italic[opsz,wght].woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Light.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Light.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-LightItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-LightItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Medium.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Medium.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-MediumItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-MediumItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Regular.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Regular.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-SemiBold.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-SemiBold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-SemiBoldItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-SemiBoldItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-Thin.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-Thin.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans-ThinItalic.woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans-ThinItalic.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/DMSans/DMSans[opsz,wght].woff2
Normal file
BIN
public/assets/fonts/DMSans/DMSans[opsz,wght].woff2
Normal file
Binary file not shown.
137
public/assets/fonts/DMSans/stylesheet.css
Normal file
137
public/assets/fonts/DMSans/stylesheet.css
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
/* DMSans Font Faces */
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Black.woff2") format("woff2");
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-BlackItalic.woff2") format("woff2");
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Bold.woff2") format("woff2");
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-BoldItalic.woff2") format("woff2");
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraBlack.woff2") format("woff2");
|
||||||
|
font-weight: 950;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraBlackItalic.woff2") format("woff2");
|
||||||
|
font-weight: 950;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraBold.woff2") format("woff2");
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraBoldItalic.woff2") format("woff2");
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraLight.woff2") format("woff2");
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ExtraLightItalic.woff2") format("woff2");
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Italic.woff2") format("woff2");
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Italic[opsz,wght].woff2") format("woff2");
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Light.woff2") format("woff2");
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-LightItalic.woff2") format("woff2");
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Medium.woff2") format("woff2");
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-MediumItalic.woff2") format("woff2");
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Regular.woff2") format("woff2");
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-SemiBold.woff2") format("woff2");
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-SemiBoldItalic.woff2") format("woff2");
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-Thin.woff2") format("woff2");
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans-ThinItalic.woff2") format("woff2");
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "DMSans";
|
||||||
|
src: url("DMSans[opsz,wght].woff2") format("woff2");
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
/* Example usage */
|
||||||
|
body {
|
||||||
|
font-family: "DMSans", sans-serif;
|
||||||
|
}/*# sourceMappingURL=stylesheet.css.map */
|
||||||
1
public/assets/fonts/DMSans/stylesheet.css.map
Normal file
1
public/assets/fonts/DMSans/stylesheet.css.map
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sources":["stylesheet.scss","stylesheet.css"],"names":[],"mappings":"AAAA,sBAAA;AACA;EACE,qBAAA;EACA,8CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,oDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,6CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,mDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,mDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,yDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,kDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,wDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,mDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,yDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,+CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,0DAAA;EACA,oBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,8CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,oDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,+CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,qDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,gDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,iDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,uDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,6CAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,mDAAA;EACA,gBAAA;EACA,kBAAA;ACCF;ADCA;EACE,qBAAA;EACA,mDAAA;EACA,oBAAA;EACA,kBAAA;ACCF;ADEA,kBAAA;AACA;EACE,iCAAA;ACAF","file":"stylesheet.css"}
|
||||||
138
public/assets/fonts/DMSans/stylesheet.scss
Normal file
138
public/assets/fonts/DMSans/stylesheet.scss
Normal file
|
|
@ -0,0 +1,138 @@
|
||||||
|
/* DMSans Font Faces */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Black.woff2') format('woff2');
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-BlackItalic.woff2') format('woff2');
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Bold.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-BoldItalic.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraBlack.woff2') format('woff2');
|
||||||
|
font-weight: 950;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraBlackItalic.woff2') format('woff2');
|
||||||
|
font-weight: 950;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraBold.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraBoldItalic.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraLight.woff2') format('woff2');
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ExtraLightItalic.woff2') format('woff2');
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Italic.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Italic[opsz,wght].woff2') format('woff2');
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Light.woff2') format('woff2');
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-LightItalic.woff2') format('woff2');
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Medium.woff2') format('woff2');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-MediumItalic.woff2') format('woff2');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Regular.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-SemiBold.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-SemiBoldItalic.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-Thin.woff2') format('woff2');
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans-ThinItalic.woff2') format('woff2');
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'DMSans';
|
||||||
|
src: url('DMSans[opsz,wght].woff2') format('woff2');
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Example usage */
|
||||||
|
body {
|
||||||
|
font-family: 'DMSans', sans-serif;
|
||||||
|
}
|
||||||
BIN
public/assets/fonts/webfont/Inconsolata-Black.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Black.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-Bold.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Bold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-ExtraBold.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-ExtraBold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-ExtraLight.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-ExtraLight.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-Light.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Light.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-Medium.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Medium.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-Regular.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Regular.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-SemiBold.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-SemiBold.woff2
Normal file
Binary file not shown.
BIN
public/assets/fonts/webfont/Inconsolata-Thin.woff2
Normal file
BIN
public/assets/fonts/webfont/Inconsolata-Thin.woff2
Normal file
Binary file not shown.
61
public/assets/fonts/webfont/stylesheet.css
Normal file
61
public/assets/fonts/webfont/stylesheet.css
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
/* Inconsolata Font Faces (ordered from lightest to boldest) */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Thin.woff2') format('woff2');
|
||||||
|
font-weight: 100;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-ExtraLight.woff2') format('woff2');
|
||||||
|
font-weight: 200;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Light.woff2') format('woff2');
|
||||||
|
font-weight: 300;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Regular.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Medium.woff2') format('woff2');
|
||||||
|
font-weight: 500;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-SemiBold.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Bold.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-ExtraBold.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inconsolata';
|
||||||
|
src: url('Inconsolata-Black.woff2') format('woff2');
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Example usage */
|
||||||
|
/* code, pre, .mono {
|
||||||
|
font-family: 'Inconsolata', monospace;
|
||||||
|
} */
|
||||||
|
|
||||||
|
|
@ -58,10 +58,10 @@
|
||||||
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
||||||
<label class="label-with-tooltip" data-css="font-size">Taille du texte</label>
|
<label class="label-with-tooltip" data-css="font-size">Taille du texte</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="fontSize.value"
|
||||||
v-model.number="fontSize.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -109,7 +109,7 @@
|
||||||
|
|
||||||
<!-- Color -->
|
<!-- Color -->
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
<div class="field field-simple" :class="{ 'field--view-only': inheritanceLocked }">
|
||||||
<label class="label-with-tooltip" data-css="color">Couleur</label>
|
<label class="label-with-tooltip" data-css="color">Couleur</label>
|
||||||
<div class="input-with-color">
|
<div class="input-with-color">
|
||||||
<input
|
<input
|
||||||
|
|
@ -125,7 +125,7 @@
|
||||||
|
|
||||||
<!-- Background -->
|
<!-- Background -->
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
<div class="field field-simple" :class="{ 'field--view-only': inheritanceLocked }">
|
||||||
<label class="label-with-tooltip" data-css="background">Arrière-plan</label>
|
<label class="label-with-tooltip" data-css="background">Arrière-plan</label>
|
||||||
<div class="input-with-color">
|
<div class="input-with-color">
|
||||||
<input
|
<input
|
||||||
|
|
@ -144,10 +144,10 @@
|
||||||
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
||||||
<label class="label-with-tooltip" data-css="margin">Marges extérieures</label>
|
<label class="label-with-tooltip" data-css="margin">Marges extérieures</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="marginOuter.value"
|
||||||
v-model.number="marginOuter.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -177,10 +177,10 @@
|
||||||
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
<div class="field" :class="{ 'field--view-only': inheritanceLocked }">
|
||||||
<label class="label-with-tooltip" data-css="padding">Marges intérieures</label>
|
<label class="label-with-tooltip" data-css="padding">Marges intérieures</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="paddingInner.value"
|
||||||
v-model.number="paddingInner.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -274,6 +274,7 @@
|
||||||
import { ref, computed, watch } from 'vue';
|
import { ref, computed, watch } from 'vue';
|
||||||
import { useStylesheetStore } from '../stores/stylesheet';
|
import { useStylesheetStore } from '../stores/stylesheet';
|
||||||
import { usePopupPosition } from '../composables/usePopupPosition';
|
import { usePopupPosition } from '../composables/usePopupPosition';
|
||||||
|
import NumberInput from './ui/NumberInput.vue';
|
||||||
import Coloris from '@melloware/coloris';
|
import Coloris from '@melloware/coloris';
|
||||||
import '@melloware/coloris/dist/coloris.css';
|
import '@melloware/coloris/dist/coloris.css';
|
||||||
import hljs from 'highlight.js/lib/core';
|
import hljs from 'highlight.js/lib/core';
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@
|
||||||
>
|
>
|
||||||
<label class="label-with-tooltip" data-css="margin-top">Haut</label>
|
<label class="label-with-tooltip" data-css="margin-top">Haut</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="margins.top.value"
|
||||||
v-model.number="margins.top.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -68,10 +68,10 @@
|
||||||
>
|
>
|
||||||
<label class="label-with-tooltip" data-css="margin-bottom">Bas</label>
|
<label class="label-with-tooltip" data-css="margin-bottom">Bas</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="margins.bottom.value"
|
||||||
v-model.number="margins.bottom.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -109,10 +109,10 @@
|
||||||
>
|
>
|
||||||
<label class="label-with-tooltip" data-css="margin-left">Gauche</label>
|
<label class="label-with-tooltip" data-css="margin-left">Gauche</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="margins.left.value"
|
||||||
v-model.number="margins.left.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -150,10 +150,10 @@
|
||||||
>
|
>
|
||||||
<label class="label-with-tooltip" data-css="margin-right">Droite</label>
|
<label class="label-with-tooltip" data-css="margin-right">Droite</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
v-model="margins.right.value"
|
||||||
v-model.number="margins.right.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
:disabled="inheritanceLocked"
|
:disabled="inheritanceLocked"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
|
|
@ -285,6 +285,7 @@
|
||||||
import { ref, computed, watch, onMounted } from 'vue';
|
import { ref, computed, watch, onMounted } from 'vue';
|
||||||
import { useStylesheetStore } from '../stores/stylesheet';
|
import { useStylesheetStore } from '../stores/stylesheet';
|
||||||
import { usePopupPosition } from '../composables/usePopupPosition';
|
import { usePopupPosition } from '../composables/usePopupPosition';
|
||||||
|
import NumberInput from './ui/NumberInput.vue';
|
||||||
import Coloris from '@melloware/coloris';
|
import Coloris from '@melloware/coloris';
|
||||||
import '@melloware/coloris/dist/coloris.css';
|
import '@melloware/coloris/dist/coloris.css';
|
||||||
import hljs from 'highlight.js/lib/core';
|
import hljs from 'highlight.js/lib/core';
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ const activeTab = inject('activeTab');
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 35rem;
|
width: var(--panel-w);
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -79,7 +79,7 @@ const activeTab = inject('activeTab');
|
||||||
|
|
||||||
nav {
|
nav {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
margin: 1rem 0 0 1rem;
|
margin: 1.5rem 0 0 2rem;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
|
|
@ -88,7 +88,7 @@ nav {
|
||||||
|
|
||||||
.close-button {
|
.close-button {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 1rem;
|
top: 1.5rem;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
|
|
@ -100,7 +100,7 @@ nav {
|
||||||
border: none;
|
border: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
color: var(--color-browngray-300);
|
color: var(--color-interface-300);
|
||||||
transition: color 0.2s ease;
|
transition: color 0.2s ease;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -117,9 +117,9 @@ nav {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
left: -35rem;
|
left: calc(var(--panel-w)*-1);
|
||||||
|
|
||||||
padding: 4rem 1rem 1rem 1rem;
|
padding: 4rem 0;
|
||||||
|
|
||||||
background-color: var(--color-panel-bg);
|
background-color: var(--color-panel-bg);
|
||||||
box-shadow: -5px 0px 12px;
|
box-shadow: -5px 0px 12px;
|
||||||
|
|
@ -134,5 +134,8 @@ nav {
|
||||||
.tab-panel {
|
.tab-panel {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
padding: 0 2em;
|
||||||
|
// padding-left: 1em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<section class="settings-section">
|
<section class="settings-section" id="settings-section_page" data-color-type="page">
|
||||||
<h2>Réglage des pages</h2>
|
<h2>Réglage des pages</h2>
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-simple">
|
||||||
<label for="page-format" class="label-with-tooltip" data-css="size"
|
<label for="page-format" class="label-with-tooltip" data-css="size"
|
||||||
>Format d'impression</label
|
>Format d'impression</label
|
||||||
>
|
>
|
||||||
|
|
@ -18,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field field--view-only">
|
<div class="field field-size field--view-only">
|
||||||
<label for="page-width" class="label-with-tooltip" data-css="width"
|
<label for="page-width" class="label-with-tooltip" data-css="width"
|
||||||
>Largeur</label
|
>Largeur</label
|
||||||
>
|
>
|
||||||
|
|
@ -31,7 +33,7 @@
|
||||||
<button type="button" disabled>mm</button>
|
<button type="button" disabled>mm</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field field--view-only">
|
<div class="field field-size field--view-only">
|
||||||
<label for="page-height" class="label-with-tooltip" data-css="height"
|
<label for="page-height" class="label-with-tooltip" data-css="height"
|
||||||
>Hauteur</label
|
>Hauteur</label
|
||||||
>
|
>
|
||||||
|
|
@ -48,16 +50,16 @@
|
||||||
<div class="settings-subsection margins">
|
<div class="settings-subsection margins">
|
||||||
<h3>Marges</h3>
|
<h3>Marges</h3>
|
||||||
|
|
||||||
<div class="field">
|
<div class="field field-margin">
|
||||||
<label for="margin-top" class="label-with-tooltip" data-css="margin-top"
|
<label for="margin-top" class="label-with-tooltip" data-css="margin-top"
|
||||||
>Haut</label
|
>Haut</label
|
||||||
>
|
>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
id="margin-top"
|
id="margin-top"
|
||||||
type="number"
|
v-model="margins.top.value"
|
||||||
v-model.number="margins.top.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
<button
|
<button
|
||||||
|
|
@ -85,7 +87,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field">
|
<div class="field field-margin">
|
||||||
<label
|
<label
|
||||||
for="margin-bottom"
|
for="margin-bottom"
|
||||||
class="label-with-tooltip"
|
class="label-with-tooltip"
|
||||||
|
|
@ -93,11 +95,11 @@
|
||||||
>Bas</label
|
>Bas</label
|
||||||
>
|
>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
id="margin-bottom"
|
id="margin-bottom"
|
||||||
type="number"
|
v-model="margins.bottom.value"
|
||||||
v-model.number="margins.bottom.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
<button
|
<button
|
||||||
|
|
@ -125,7 +127,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field">
|
<div class="field field-margin">
|
||||||
<label
|
<label
|
||||||
for="margin-left"
|
for="margin-left"
|
||||||
class="label-with-tooltip"
|
class="label-with-tooltip"
|
||||||
|
|
@ -133,11 +135,11 @@
|
||||||
>Gauche</label
|
>Gauche</label
|
||||||
>
|
>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
id="margin-left"
|
id="margin-left"
|
||||||
type="number"
|
v-model="margins.left.value"
|
||||||
v-model.number="margins.left.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
<button
|
<button
|
||||||
|
|
@ -165,7 +167,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field">
|
<div class="field field-margin">
|
||||||
<label
|
<label
|
||||||
for="margin-right"
|
for="margin-right"
|
||||||
class="label-with-tooltip"
|
class="label-with-tooltip"
|
||||||
|
|
@ -173,11 +175,11 @@
|
||||||
>Droite</label
|
>Droite</label
|
||||||
>
|
>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
id="margin-right"
|
id="margin-right"
|
||||||
type="number"
|
v-model="margins.right.value"
|
||||||
v-model.number="margins.right.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
/>
|
/>
|
||||||
<div class="unit-toggle">
|
<div class="unit-toggle">
|
||||||
<button
|
<button
|
||||||
|
|
@ -207,7 +209,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-simple">
|
||||||
<label for="background" class="label-with-tooltip" data-css="background"
|
<label for="background" class="label-with-tooltip" data-css="background"
|
||||||
>Arrière-plan</label
|
>Arrière-plan</label
|
||||||
>
|
>
|
||||||
|
|
@ -242,7 +244,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-simple">
|
||||||
<label
|
<label
|
||||||
for="pattern"
|
for="pattern"
|
||||||
class="label-with-tooltip"
|
class="label-with-tooltip"
|
||||||
|
|
@ -279,6 +281,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -286,6 +289,7 @@
|
||||||
import { ref, computed, watch, onMounted, inject } from 'vue';
|
import { ref, computed, watch, onMounted, inject } from 'vue';
|
||||||
import { useStylesheetStore } from '../../stores/stylesheet';
|
import { useStylesheetStore } from '../../stores/stylesheet';
|
||||||
import Coloris from '@melloware/coloris';
|
import Coloris from '@melloware/coloris';
|
||||||
|
import NumberInput from '../ui/NumberInput.vue';
|
||||||
import '@melloware/coloris/dist/coloris.css';
|
import '@melloware/coloris/dist/coloris.css';
|
||||||
|
|
||||||
const stylesheetStore = useStylesheetStore();
|
const stylesheetStore = useStylesheetStore();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<section class="settings-section">
|
<section class="settings-section" id="settings-section_elem" data-color-type="elem">
|
||||||
<h2>Réglage du texte</h2>
|
<h2>Réglage du texte</h2>
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
<p class="infos">
|
<p class="infos">
|
||||||
Ces réglages s'appliquent à l'ensemble des éléments du document. Vous
|
Ces réglages s'appliquent à l'ensemble des éléments du document. Vous
|
||||||
pouvez modifier ensuite les éléments indépendamment.
|
pouvez modifier ensuite les éléments indépendamment.
|
||||||
|
|
@ -8,7 +10,7 @@
|
||||||
|
|
||||||
<!-- Police -->
|
<!-- Police -->
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-font">
|
||||||
<label for="text-font" class="label-with-tooltip" data-css="font-family">Police</label>
|
<label for="text-font" class="label-with-tooltip" data-css="font-family">Police</label>
|
||||||
<div class="field-with-option">
|
<div class="field-with-option">
|
||||||
<select id="text-font" v-model="font">
|
<select id="text-font" v-model="font">
|
||||||
|
|
@ -46,7 +48,7 @@
|
||||||
|
|
||||||
<!-- Alignement -->
|
<!-- Alignement -->
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-simple">
|
||||||
<label for="text-alignment" class="label-with-tooltip" data-css="text-align">Alignement</label>
|
<label for="text-alignment" class="label-with-tooltip" data-css="text-align">Alignement</label>
|
||||||
<select id="text-alignment" v-model="alignment">
|
<select id="text-alignment" v-model="alignment">
|
||||||
<option v-for="a in alignments" :key="a.value" :value="a.value">
|
<option v-for="a in alignments" :key="a.value" :value="a.value">
|
||||||
|
|
@ -58,7 +60,7 @@
|
||||||
|
|
||||||
<!-- Couleurs -->
|
<!-- Couleurs -->
|
||||||
<div class="settings-subsection">
|
<div class="settings-subsection">
|
||||||
<div class="field">
|
<div class="field field-simple">
|
||||||
<label for="text-color" class="label-with-tooltip" data-css="color">Couleur</label>
|
<label for="text-color" class="label-with-tooltip" data-css="color">Couleur</label>
|
||||||
<div class="input-with-color">
|
<div class="input-with-color">
|
||||||
<input
|
<input
|
||||||
|
|
@ -70,7 +72,11 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
</div>
|
||||||
|
|
||||||
|
<!-- Couleurs // arrière plan -->
|
||||||
|
<div class="settings-subsection">
|
||||||
|
<div class="field field-simple">
|
||||||
<label for="text-background" class="label-with-tooltip" data-css="background">Arrière-plan</label>
|
<label for="text-background" class="label-with-tooltip" data-css="background">Arrière-plan</label>
|
||||||
<div class="input-with-color">
|
<div class="input-with-color">
|
||||||
<input
|
<input
|
||||||
|
|
@ -111,6 +117,8 @@
|
||||||
@change="handleMarginInnerChange"
|
@change="handleMarginInnerChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,13 @@
|
||||||
:step="step"
|
:step="step"
|
||||||
@input="updateValue(Number($event.target.value))"
|
@input="updateValue(Number($event.target.value))"
|
||||||
/>
|
/>
|
||||||
<input
|
<NumberInput
|
||||||
type="number"
|
:modelValue="modelValue.value"
|
||||||
:value="modelValue.value"
|
|
||||||
:min="min"
|
:min="min"
|
||||||
:max="max"
|
:max="max"
|
||||||
:step="step"
|
:step="step"
|
||||||
class="size-input"
|
inputClass="size-input"
|
||||||
@input="updateValue(Number($event.target.value))"
|
@update:modelValue="updateValue"
|
||||||
/>
|
/>
|
||||||
<UnitToggle
|
<UnitToggle
|
||||||
:modelValue="modelValue.unit"
|
:modelValue="modelValue.unit"
|
||||||
|
|
@ -28,6 +27,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import NumberInput from './NumberInput.vue';
|
||||||
import UnitToggle from './UnitToggle.vue';
|
import UnitToggle from './UnitToggle.vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="margin-editor">
|
<div class="margin-editor">
|
||||||
<div class="field">
|
<div class="field field-margin-all">
|
||||||
<label :for="id" class="label-with-tooltip" :data-css="cssProperty">{{ label }}</label>
|
<label :for="id" class="label-with-tooltip" :data-css="cssProperty">{{ label }}</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
:id="id"
|
:id="id"
|
||||||
type="number"
|
:modelValue="simple.value"
|
||||||
:value="simple.value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
@input="updateSimpleValue(Number($event.target.value))"
|
@update:modelValue="updateSimpleValue"
|
||||||
/>
|
/>
|
||||||
<UnitToggle
|
<UnitToggle
|
||||||
:modelValue="simple.unit"
|
:modelValue="simple.unit"
|
||||||
|
|
@ -28,15 +28,15 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="expanded" class="subsection collapsed-section">
|
<div v-if="expanded" class="subsection collapsed-section">
|
||||||
<div v-for="side in sides" :key="side.key" class="field">
|
<div v-for="side in sides" :key="side.key" class="field field-margin">
|
||||||
<label :for="`${id}-${side.key}`" class="label-with-tooltip" :data-css="`${cssProperty}-${side.key}`">{{ side.label }}</label>
|
<label :for="`${id}-${side.key}`" class="label-with-tooltip" :data-css="`${cssProperty}-${side.key}`">{{ side.label }}</label>
|
||||||
<div class="input-with-unit">
|
<div class="input-with-unit">
|
||||||
<input
|
<NumberInput
|
||||||
:id="`${id}-${side.key}`"
|
:id="`${id}-${side.key}`"
|
||||||
type="number"
|
:modelValue="detailed[side.key].value"
|
||||||
:value="detailed[side.key].value"
|
:min="0"
|
||||||
min="0"
|
:step="1"
|
||||||
@input="updateDetailedValue(side.key, Number($event.target.value))"
|
@update:modelValue="(value) => updateDetailedValue(side.key, value)"
|
||||||
/>
|
/>
|
||||||
<UnitToggle
|
<UnitToggle
|
||||||
:modelValue="detailed[side.key].unit"
|
:modelValue="detailed[side.key].unit"
|
||||||
|
|
@ -51,6 +51,7 @@
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
|
import NumberInput from './NumberInput.vue';
|
||||||
import UnitToggle from './UnitToggle.vue';
|
import UnitToggle from './UnitToggle.vue';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
|
||||||
93
src/components/ui/NumberInput.vue
Normal file
93
src/components/ui/NumberInput.vue
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
<template>
|
||||||
|
<div class="number-input">
|
||||||
|
<input
|
||||||
|
type="number"
|
||||||
|
:value="modelValue"
|
||||||
|
:min="min"
|
||||||
|
:max="max"
|
||||||
|
:step="step"
|
||||||
|
:id="id"
|
||||||
|
:class="inputClass"
|
||||||
|
:disabled="disabled"
|
||||||
|
@input="handleInput"
|
||||||
|
/>
|
||||||
|
<div class="spinner-buttons">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="spinner-btn spinner-up"
|
||||||
|
@click="increment"
|
||||||
|
:disabled="disabled || (max !== undefined && modelValue >= max)"
|
||||||
|
tabindex="-1"
|
||||||
|
>
|
||||||
|
<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4 0L7.4641 6H0.535898L4 0Z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="spinner-btn spinner-down"
|
||||||
|
@click="decrement"
|
||||||
|
:disabled="disabled || (min !== undefined && modelValue <= min)"
|
||||||
|
tabindex="-1"
|
||||||
|
>
|
||||||
|
<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4 6L0.535898 0H7.4641L4 6Z" fill="currentColor"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
min: {
|
||||||
|
type: Number,
|
||||||
|
default: undefined
|
||||||
|
},
|
||||||
|
max: {
|
||||||
|
type: Number,
|
||||||
|
default: undefined
|
||||||
|
},
|
||||||
|
step: {
|
||||||
|
type: Number,
|
||||||
|
default: 1
|
||||||
|
},
|
||||||
|
id: {
|
||||||
|
type: String,
|
||||||
|
default: undefined
|
||||||
|
},
|
||||||
|
inputClass: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const emit = defineEmits(['update:modelValue']);
|
||||||
|
|
||||||
|
const handleInput = (event) => {
|
||||||
|
const value = Number(event.target.value);
|
||||||
|
emit('update:modelValue', value);
|
||||||
|
};
|
||||||
|
|
||||||
|
const increment = () => {
|
||||||
|
const newValue = props.modelValue + props.step;
|
||||||
|
if (props.max === undefined || newValue <= props.max) {
|
||||||
|
emit('update:modelValue', newValue);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const decrement = () => {
|
||||||
|
const newValue = props.modelValue - props.step;
|
||||||
|
if (props.min === undefined || newValue >= props.min) {
|
||||||
|
emit('update:modelValue', newValue);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
@ -1 +1 @@
|
||||||
@import url('/assets/css/style.css');
|
@import '../public/assets/css/style.scss';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue