@jjlmoya/utils-textiles 1.20.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/i18n/de.ts +76 -76
- package/src/category/i18n/en.ts +76 -76
- package/src/category/i18n/es.ts +76 -76
- package/src/category/i18n/fr.ts +76 -76
- package/src/category/i18n/id.ts +76 -76
- package/src/category/i18n/it.ts +76 -76
- package/src/category/i18n/ja.ts +76 -76
- package/src/category/i18n/ko.ts +76 -76
- package/src/category/i18n/nl.ts +76 -76
- package/src/category/i18n/pl.ts +76 -76
- package/src/category/i18n/pt.ts +76 -76
- package/src/category/i18n/ru.ts +76 -76
- package/src/category/i18n/sv.ts +76 -76
- package/src/category/i18n/zh.ts +76 -76
- package/src/category/index.ts +2 -0
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +4 -1
- package/src/env.d.ts +1 -1
- package/src/index.ts +1 -1
- package/src/layouts/PreviewLayout.astro +113 -113
- package/src/pages/index.astro +1 -1
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +4 -2
- package/src/tests/locale_spelling.test.ts +44 -0
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_en_dash.test.ts +70 -70
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_length.test.ts +22 -22
- package/src/tests/seo_translation_completeness.test.ts +69 -0
- package/src/tests/spanish_leakage.test.ts +175 -153
- package/src/tests/tool_validation.test.ts +17 -17
- package/src/tool/burnTest/i18n/es.ts +211 -211
- package/src/tool/burnTest/i18n/fr.ts +211 -211
- package/src/tool/burnTest/i18n/ja.ts +211 -211
- package/src/tool/burnTest/i18n/ko.ts +211 -211
- package/src/tool/burnTest/i18n/pl.ts +211 -211
- package/src/tool/burnTest/i18n/ru.ts +211 -211
- package/src/tool/burnTest/i18n/sv.ts +211 -211
- package/src/tool/burnTest/i18n/zh.ts +211 -211
- package/src/tool/burnTest/seo.astro +15 -15
- package/src/tool/clothingSizeConverter/i18n/de.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/en.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/fr.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ja.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ko.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/nl.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/pl.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/ru.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/sv.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/tr.ts +348 -348
- package/src/tool/clothingSizeConverter/i18n/zh.ts +348 -348
- package/src/tool/clothingSizeConverter/seo.astro +15 -15
- package/src/tool/embroideryStitchPricingEstimator/bibliography.astro +6 -0
- package/src/tool/embroideryStitchPricingEstimator/bibliography.ts +12 -0
- package/src/tool/embroideryStitchPricingEstimator/component.astro +111 -0
- package/src/tool/embroideryStitchPricingEstimator/controller.ts +111 -0
- package/src/tool/embroideryStitchPricingEstimator/dom-views.ts +94 -0
- package/src/tool/embroideryStitchPricingEstimator/embroidery-stitch-count-pricing-estimator.css +438 -0
- package/src/tool/embroideryStitchPricingEstimator/entry.ts +29 -0
- package/src/tool/embroideryStitchPricingEstimator/evaluator.ts +22 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/de.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/en.ts +194 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/es.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/fr.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/id.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/it.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ja.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ko.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/nl.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/pl.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/pt.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/ru.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/sv.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/tr.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/i18n/zh.ts +38 -0
- package/src/tool/embroideryStitchPricingEstimator/index.ts +11 -0
- package/src/tool/embroideryStitchPricingEstimator/logic.test.ts +40 -0
- package/src/tool/embroideryStitchPricingEstimator/logic.ts +86 -0
- package/src/tool/embroideryStitchPricingEstimator/seo.astro +15 -0
- package/src/tool/embroideryStitchPricingEstimator/storage.ts +20 -0
- package/src/tool/embroideryStitchPricingEstimator/ui.ts +53 -0
- package/src/tool/fabricProjectCalculator/i18n/de.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ja.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ko.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/nl.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/pl.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/ru.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/sv.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/tr.ts +236 -236
- package/src/tool/fabricProjectCalculator/i18n/zh.ts +236 -236
- package/src/tool/fabricProjectCalculator/seo.astro +15 -15
- package/src/tool/fabricTruth/i18n/de.ts +268 -268
- package/src/tool/fabricTruth/i18n/en.ts +268 -268
- package/src/tool/fabricTruth/i18n/es.ts +302 -302
- package/src/tool/fabricTruth/i18n/fr.ts +268 -268
- package/src/tool/fabricTruth/i18n/id.ts +268 -268
- package/src/tool/fabricTruth/i18n/it.ts +268 -268
- package/src/tool/fabricTruth/i18n/ja.ts +268 -268
- package/src/tool/fabricTruth/i18n/ko.ts +268 -268
- package/src/tool/fabricTruth/i18n/nl.ts +268 -268
- package/src/tool/fabricTruth/i18n/pl.ts +268 -268
- package/src/tool/fabricTruth/i18n/pt.ts +268 -268
- package/src/tool/fabricTruth/i18n/ru.ts +268 -268
- package/src/tool/fabricTruth/i18n/sv.ts +268 -268
- package/src/tool/fabricTruth/i18n/tr.ts +268 -268
- package/src/tool/fabricTruth/i18n/zh.ts +272 -272
- package/src/tool/fabricTruth/seo.astro +15 -15
- package/src/tool/fiberPrep/i18n/de.ts +215 -215
- package/src/tool/fiberPrep/i18n/fr.ts +215 -215
- package/src/tool/fiberPrep/i18n/ja.ts +215 -215
- package/src/tool/fiberPrep/i18n/ko.ts +215 -215
- package/src/tool/fiberPrep/i18n/nl.ts +215 -215
- package/src/tool/fiberPrep/i18n/pl.ts +215 -215
- package/src/tool/fiberPrep/i18n/ru.ts +215 -215
- package/src/tool/fiberPrep/i18n/sv.ts +215 -215
- package/src/tool/fiberPrep/i18n/tr.ts +215 -215
- package/src/tool/fiberPrep/i18n/zh.ts +215 -215
- package/src/tool/fiberPrep/seo.astro +15 -15
- package/src/tool/knittingGauge/i18n/de.ts +224 -224
- package/src/tool/knittingGauge/i18n/ja.ts +224 -224
- package/src/tool/knittingGauge/i18n/ko.ts +224 -224
- package/src/tool/knittingGauge/i18n/pl.ts +224 -224
- package/src/tool/knittingGauge/i18n/ru.ts +224 -224
- package/src/tool/knittingGauge/i18n/tr.ts +224 -224
- package/src/tool/knittingGauge/i18n/zh.ts +224 -224
- package/src/tool/knittingGauge/seo.astro +15 -15
- package/src/tool/laundryGuide/i18n/de.ts +271 -271
- package/src/tool/laundryGuide/i18n/en.ts +271 -271
- package/src/tool/laundryGuide/i18n/es.ts +271 -271
- package/src/tool/laundryGuide/i18n/fr.ts +255 -255
- package/src/tool/laundryGuide/i18n/id.ts +271 -271
- package/src/tool/laundryGuide/i18n/it.ts +271 -271
- package/src/tool/laundryGuide/i18n/ja.ts +271 -271
- package/src/tool/laundryGuide/i18n/ko.ts +271 -271
- package/src/tool/laundryGuide/i18n/nl.ts +271 -271
- package/src/tool/laundryGuide/i18n/pl.ts +271 -271
- package/src/tool/laundryGuide/i18n/pt.ts +271 -271
- package/src/tool/laundryGuide/i18n/ru.ts +271 -271
- package/src/tool/laundryGuide/i18n/sv.ts +271 -271
- package/src/tool/laundryGuide/i18n/tr.ts +271 -271
- package/src/tool/laundryGuide/i18n/zh.ts +271 -271
- package/src/tool/laundryGuide/seo.astro +15 -15
- package/src/tool/needleConverter/i18n/de.ts +202 -202
- package/src/tool/needleConverter/i18n/es.ts +207 -207
- package/src/tool/needleConverter/i18n/fr.ts +207 -207
- package/src/tool/needleConverter/i18n/ja.ts +202 -202
- package/src/tool/needleConverter/i18n/ko.ts +202 -202
- package/src/tool/needleConverter/i18n/nl.ts +202 -202
- package/src/tool/needleConverter/i18n/pl.ts +202 -202
- package/src/tool/needleConverter/i18n/ru.ts +202 -202
- package/src/tool/needleConverter/i18n/sv.ts +202 -202
- package/src/tool/needleConverter/i18n/tr.ts +202 -202
- package/src/tool/needleConverter/i18n/zh.ts +202 -202
- package/src/tool/needleConverter/seo.astro +15 -15
- package/src/tool/sewingPatternScaler/component.astro +236 -236
- package/src/tool/sewingPatternScaler/i18n/fr.ts +170 -170
- package/src/tool/sewingPatternScaler/i18n/ja.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/ko.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/nl.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/pl.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/ru.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/sv.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/tr.ts +114 -114
- package/src/tool/sewingPatternScaler/i18n/zh.ts +114 -114
- package/src/tool/sewingPatternScaler/seo.astro +15 -15
- package/src/tool/shoeSizeConverter/i18n/fr.ts +183 -183
- package/src/tool/shoeSizeConverter/i18n/ja.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/ko.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/nl.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/pl.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/ru.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/sv.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/tr.ts +179 -179
- package/src/tool/shoeSizeConverter/i18n/zh.ts +179 -179
- package/src/tool/shoeSizeConverter/seo.astro +15 -15
- package/src/tool/stainChemistry/bibliography.ts +16 -16
- package/src/tool/stainChemistry/i18n/de.ts +286 -286
- package/src/tool/stainChemistry/i18n/en.ts +289 -289
- package/src/tool/stainChemistry/i18n/es.ts +286 -286
- package/src/tool/stainChemistry/i18n/fr.ts +296 -296
- package/src/tool/stainChemistry/i18n/id.ts +286 -286
- package/src/tool/stainChemistry/i18n/it.ts +286 -286
- package/src/tool/stainChemistry/i18n/ja.ts +286 -286
- package/src/tool/stainChemistry/i18n/ko.ts +283 -283
- package/src/tool/stainChemistry/i18n/nl.ts +286 -286
- package/src/tool/stainChemistry/i18n/pl.ts +286 -286
- package/src/tool/stainChemistry/i18n/pt.ts +286 -286
- package/src/tool/stainChemistry/i18n/ru.ts +286 -286
- package/src/tool/stainChemistry/i18n/sv.ts +286 -286
- package/src/tool/stainChemistry/i18n/tr.ts +286 -286
- package/src/tool/stainChemistry/i18n/zh.ts +281 -281
- package/src/tool/stainChemistry/seo.astro +15 -15
- package/src/tool/yarnCalculator/i18n/de.ts +296 -296
- package/src/tool/yarnCalculator/i18n/es.ts +296 -296
- package/src/tool/yarnCalculator/i18n/fr.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ja.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ko.ts +296 -296
- package/src/tool/yarnCalculator/i18n/nl.ts +296 -296
- package/src/tool/yarnCalculator/i18n/pl.ts +296 -296
- package/src/tool/yarnCalculator/i18n/ru.ts +296 -296
- package/src/tool/yarnCalculator/i18n/sv.ts +296 -296
- package/src/tool/yarnCalculator/i18n/tr.ts +296 -296
- package/src/tool/yarnCalculator/i18n/zh.ts +295 -295
- package/src/tool/yarnCalculator/seo.astro +15 -15
- package/src/tools.ts +2 -2
package/src/category/i18n/sv.ts
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
-
|
|
3
|
-
export const content: CategoryLocaleContent = {
|
|
4
|
-
slug: 'textilier',
|
|
5
|
-
title: 'Textila verktyg',
|
|
6
|
-
description: 'Kostnadsfria kalkylatorer och verktyg för textilianalys, klädvård och tygdesign. Förstå dina kläders verkliga sammansättning.',
|
|
7
|
-
seo: [
|
|
8
|
-
{
|
|
9
|
-
type: 'title',
|
|
10
|
-
text: 'Textilvetenskap: Fiberanalys och tygsammansättning',
|
|
11
|
-
level: 2,
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
type: 'paragraph',
|
|
15
|
-
html: 'Världen av textilier är en fascinerande skärningspunkt mellan kemi, fysik och ingenjörskonst. I den här sektionen erbjuder vi specialiserade verktyg för att du verkligen ska förstå vad du bär. Från sammansättningsanalys till beräkningar av tygåtgång och mönsterskalning - dessa verktyg är designade för proffs, DIY-entusiaster och medvetna konsumenter som vill fatta välgrundade beslut om sina plagg.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
type: 'title',
|
|
19
|
-
level: 2,
|
|
20
|
-
text: 'Textil sanning: Upptäck plast maskerad som mode',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
type: 'paragraph',
|
|
24
|
-
html: 'Modeindustrin använder sofistikerade marknadsföringstekniker för att sälja mediokra plagg till premiumpriser. Vårt verktyg för textil sanning analyserar plaggens verkliga sammansättning - de fiberprocent som anges på etiketten - för att avslöja obekväma sanningar: är det verkligen bomull eller är det "dyr plast"? Innehåller det äkta silke eller bara 3 % som ett reklamknep? Det använder en algoritm baserad på europeiska och nordamerikanska industristandarder som utvärderar andningsförmåga, hållbarhet och termisk effektivitet.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'title',
|
|
28
|
-
level: 2,
|
|
29
|
-
text: 'Textil mästerskap: Vetenskaplig guide för tvätt och vård',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
type: 'paragraph',
|
|
33
|
-
html: 'Varje fiber kräver ett specifikt protokoll. Bomull tål varmt vatten; silke förstörs. Ull kräver kallt vatten; polyester tål torktumlare. Vår kalkylator för textilvård ger dig exakta instruktioner baserade på ditt plaggs verkliga sammansättning, vilket förlänger dess livslängd avsevärt.',
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
type: 'title',
|
|
37
|
-
level: 2,
|
|
38
|
-
text: 'Fläckkemi: Protokoll efter fibertyp',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
type: 'paragraph',
|
|
42
|
-
html: 'En vinfläck på linne kräver ett annat protokoll än samma fläck på silke. Fettfläckar på polyester behöver lösningsmedel; på ull krävs mer skonsamma metoder. Detta verktyg matchar fläckar, fibertyper och kemiska medel för att erbjuda dig den bästa strategin för borttagning utan att skada tyget.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
type: 'title',
|
|
46
|
-
level: 2,
|
|
47
|
-
text: 'Bränntest: Identifiera fibrer genom att bränna dem',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
type: 'paragraph',
|
|
51
|
-
html: 'Historiskt sett har textilexperter använt bränntester för att identifiera fibrer: flammans beteende, lukten och resterna avslöjar fibrets kemiska natur. Naturfibrer (cellulosa, protein) har andra egenskaper än syntetfibrer (plast som härrör från petroleum).',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
type: 'title',
|
|
55
|
-
level: 2,
|
|
56
|
-
text: 'Verktyg för vävare och sömmerskor',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
type: 'paragraph',
|
|
60
|
-
html: 'Om du är en entusiast av sömnad, stickning eller virkning har vi avancerade kalkylatorer: från nålkonverterare till beräkningar av tygåtgång, mönsterskalare som respekterar proportioner och verktyg för masktäthet (gauge) som säkerställer att ditt slutliga projekt får exakt de önskade måtten.',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
type: 'title',
|
|
64
|
-
level: 2,
|
|
65
|
-
text: 'Medveten konsumtion och hållbart mode',
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
type: 'paragraph',
|
|
69
|
-
html: 'Varje klädköp är ett beslut med miljöpåverkan och social påverkan. Att förstå textilsammansättningen är det första steget mot medveten konsumtion. Nedbrytbara naturfibrer (bomull, linne, ull) har en helt annan miljöpåverkan än syntetfibrer (polyester, akryl), som tar 200 år att brytas ner.',
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
type: 'paragraph',
|
|
73
|
-
html: 'Våra verktyg ger dig möjlighet att göra smartare inköp, ta bättre hand om dina plagg och förlänga deras livslängd - den mest hållbara handlingen som är möjlig.',
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
};
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'textilier',
|
|
5
|
+
title: 'Textila verktyg',
|
|
6
|
+
description: 'Kostnadsfria kalkylatorer och verktyg för textilianalys, klädvård och tygdesign. Förstå dina kläders verkliga sammansättning.',
|
|
7
|
+
seo: [
|
|
8
|
+
{
|
|
9
|
+
type: 'title',
|
|
10
|
+
text: 'Textilvetenskap: Fiberanalys och tygsammansättning',
|
|
11
|
+
level: 2,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'paragraph',
|
|
15
|
+
html: 'Världen av textilier är en fascinerande skärningspunkt mellan kemi, fysik och ingenjörskonst. I den här sektionen erbjuder vi specialiserade verktyg för att du verkligen ska förstå vad du bär. Från sammansättningsanalys till beräkningar av tygåtgång och mönsterskalning - dessa verktyg är designade för proffs, DIY-entusiaster och medvetna konsumenter som vill fatta välgrundade beslut om sina plagg.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
type: 'title',
|
|
19
|
+
level: 2,
|
|
20
|
+
text: 'Textil sanning: Upptäck plast maskerad som mode',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'paragraph',
|
|
24
|
+
html: 'Modeindustrin använder sofistikerade marknadsföringstekniker för att sälja mediokra plagg till premiumpriser. Vårt verktyg för textil sanning analyserar plaggens verkliga sammansättning - de fiberprocent som anges på etiketten - för att avslöja obekväma sanningar: är det verkligen bomull eller är det "dyr plast"? Innehåller det äkta silke eller bara 3 % som ett reklamknep? Det använder en algoritm baserad på europeiska och nordamerikanska industristandarder som utvärderar andningsförmåga, hållbarhet och termisk effektivitet.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'title',
|
|
28
|
+
level: 2,
|
|
29
|
+
text: 'Textil mästerskap: Vetenskaplig guide för tvätt och vård',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'paragraph',
|
|
33
|
+
html: 'Varje fiber kräver ett specifikt protokoll. Bomull tål varmt vatten; silke förstörs. Ull kräver kallt vatten; polyester tål torktumlare. Vår kalkylator för textilvård ger dig exakta instruktioner baserade på ditt plaggs verkliga sammansättning, vilket förlänger dess livslängd avsevärt.',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'title',
|
|
37
|
+
level: 2,
|
|
38
|
+
text: 'Fläckkemi: Protokoll efter fibertyp',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'paragraph',
|
|
42
|
+
html: 'En vinfläck på linne kräver ett annat protokoll än samma fläck på silke. Fettfläckar på polyester behöver lösningsmedel; på ull krävs mer skonsamma metoder. Detta verktyg matchar fläckar, fibertyper och kemiska medel för att erbjuda dig den bästa strategin för borttagning utan att skada tyget.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'title',
|
|
46
|
+
level: 2,
|
|
47
|
+
text: 'Bränntest: Identifiera fibrer genom att bränna dem',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'paragraph',
|
|
51
|
+
html: 'Historiskt sett har textilexperter använt bränntester för att identifiera fibrer: flammans beteende, lukten och resterna avslöjar fibrets kemiska natur. Naturfibrer (cellulosa, protein) har andra egenskaper än syntetfibrer (plast som härrör från petroleum).',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'title',
|
|
55
|
+
level: 2,
|
|
56
|
+
text: 'Verktyg för vävare och sömmerskor',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'paragraph',
|
|
60
|
+
html: 'Om du är en entusiast av sömnad, stickning eller virkning har vi avancerade kalkylatorer: från nålkonverterare till beräkningar av tygåtgång, mönsterskalare som respekterar proportioner och verktyg för masktäthet (gauge) som säkerställer att ditt slutliga projekt får exakt de önskade måtten.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'title',
|
|
64
|
+
level: 2,
|
|
65
|
+
text: 'Medveten konsumtion och hållbart mode',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'paragraph',
|
|
69
|
+
html: 'Varje klädköp är ett beslut med miljöpåverkan och social påverkan. Att förstå textilsammansättningen är det första steget mot medveten konsumtion. Nedbrytbara naturfibrer (bomull, linne, ull) har en helt annan miljöpåverkan än syntetfibrer (polyester, akryl), som tar 200 år att brytas ner.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Våra verktyg ger dig möjlighet att göra smartare inköp, ta bättre hand om dina plagg och förlänga deras livslängd - den mest hållbara handlingen som är möjlig.',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
};
|
package/src/category/i18n/zh.ts
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
-
|
|
3
|
-
export const content: CategoryLocaleContent = {
|
|
4
|
-
slug: 'textiles',
|
|
5
|
-
title: '纺织工具',
|
|
6
|
-
description: '免费的纺织品分析、服装护理和织物设计计算器与工具。了解您衣服的真实成分。',
|
|
7
|
-
seo: [
|
|
8
|
-
{
|
|
9
|
-
type: 'title',
|
|
10
|
-
text: '纺织科学:纤维分析与织物成分',
|
|
11
|
-
level: 2,
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
type: 'paragraph',
|
|
15
|
-
html: '纺织世界是化学、物理和工程学的迷人交汇点。在本板块中,我们提供专业工具,帮助您真正了解自己穿的内容。从成分分析到面料耗损计算和纸样缩放,这些工具专为专业人士、DIY 爱好者和希望对自己的服装做出知情决策的理性消费者而设计。',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
type: 'title',
|
|
19
|
-
level: 2,
|
|
20
|
-
text: '纺织真相:识别伪装成时尚的塑料',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
type: 'paragraph',
|
|
24
|
-
html: '时尚行业利用成熟的营销技术,以溢价销售平庸的服装。我们的"纺织真相"工具分析服装的真实成分(标签上列出的纤维百分比),为您揭开令人不安的真相:它真的是棉,还是"昂贵的塑料"?它含有真丝,还是仅仅为了广告噱头而添加了 3%?它采用基于欧洲和北美工业标准的算法,评估透气性、耐用性和热效率。',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'title',
|
|
28
|
-
level: 2,
|
|
29
|
-
text: '纺织精通:洗涤与护理科学指南',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
type: 'paragraph',
|
|
33
|
-
html: '每种纤维都需要特定的方案。棉花耐热水,真丝则会被毁掉。羊毛需要冷水;涤纶可以承受烘干。我们的纺织护理计算器根据您服装的真实成分提供精确指导,显著延长其使用寿命。',
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
type: 'title',
|
|
37
|
-
level: 2,
|
|
38
|
-
text: '污渍化学:按纤维类型划分的方案',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
type: 'paragraph',
|
|
42
|
-
html: '亚麻上的红酒渍需要与真丝上的相同污渍不同的方案。涤纶上的油渍需要溶剂;羊毛则需要更温和的方法。该工具将污渍、纤维类型和化学试剂相匹配,为您提供最佳的去除策略,同时不损坏织物。',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
type: 'title',
|
|
46
|
-
level: 2,
|
|
47
|
-
text: '燃烧测试:通过燃烧识别纤维',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
type: 'paragraph',
|
|
51
|
-
html: '历史上,纺织专家一直使用燃烧测试来识别纤维:火焰的行为、气味和残留物揭示了纤维的化学性质。天然纤维(纤维素、蛋白质)具有与合成纤维(石油衍生的塑料)不同的特性。',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
type: 'title',
|
|
55
|
-
level: 2,
|
|
56
|
-
text: '针织与社交工具',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
type: 'paragraph',
|
|
60
|
-
html: '如果您是缝纫、针织或钩针爱好者,我们拥有先进的计算器:从针号转换器到面料耗用计算、保持比例的纸样缩放器,以及确保您的最终成品具有精确尺寸的织片密度(gauge)工具。',
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
type: 'title',
|
|
64
|
-
level: 2,
|
|
65
|
-
text: '理性消费与可持续时尚',
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
type: 'paragraph',
|
|
69
|
-
html: '每一次服装购买都是一个具有环境和社会影响的决定。了解纺织成分是迈向理性消费的第一步。可降解的天然纤维(棉、麻、毛)与合成纤维(涤纶、腈纶)的环境影响截然不同,后者需要 200 年才能分解。',
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
type: 'paragraph',
|
|
73
|
-
html: '我们的工具使您能够进行更明智的购买,更好地护理衣服并延长其使用寿命 - - 这是最可持续的行为。',
|
|
74
|
-
},
|
|
75
|
-
],
|
|
76
|
-
};
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'textiles',
|
|
5
|
+
title: '纺织工具',
|
|
6
|
+
description: '免费的纺织品分析、服装护理和织物设计计算器与工具。了解您衣服的真实成分。',
|
|
7
|
+
seo: [
|
|
8
|
+
{
|
|
9
|
+
type: 'title',
|
|
10
|
+
text: '纺织科学:纤维分析与织物成分',
|
|
11
|
+
level: 2,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'paragraph',
|
|
15
|
+
html: '纺织世界是化学、物理和工程学的迷人交汇点。在本板块中,我们提供专业工具,帮助您真正了解自己穿的内容。从成分分析到面料耗损计算和纸样缩放,这些工具专为专业人士、DIY 爱好者和希望对自己的服装做出知情决策的理性消费者而设计。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
type: 'title',
|
|
19
|
+
level: 2,
|
|
20
|
+
text: '纺织真相:识别伪装成时尚的塑料',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'paragraph',
|
|
24
|
+
html: '时尚行业利用成熟的营销技术,以溢价销售平庸的服装。我们的"纺织真相"工具分析服装的真实成分(标签上列出的纤维百分比),为您揭开令人不安的真相:它真的是棉,还是"昂贵的塑料"?它含有真丝,还是仅仅为了广告噱头而添加了 3%?它采用基于欧洲和北美工业标准的算法,评估透气性、耐用性和热效率。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'title',
|
|
28
|
+
level: 2,
|
|
29
|
+
text: '纺织精通:洗涤与护理科学指南',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'paragraph',
|
|
33
|
+
html: '每种纤维都需要特定的方案。棉花耐热水,真丝则会被毁掉。羊毛需要冷水;涤纶可以承受烘干。我们的纺织护理计算器根据您服装的真实成分提供精确指导,显著延长其使用寿命。',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'title',
|
|
37
|
+
level: 2,
|
|
38
|
+
text: '污渍化学:按纤维类型划分的方案',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'paragraph',
|
|
42
|
+
html: '亚麻上的红酒渍需要与真丝上的相同污渍不同的方案。涤纶上的油渍需要溶剂;羊毛则需要更温和的方法。该工具将污渍、纤维类型和化学试剂相匹配,为您提供最佳的去除策略,同时不损坏织物。',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'title',
|
|
46
|
+
level: 2,
|
|
47
|
+
text: '燃烧测试:通过燃烧识别纤维',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'paragraph',
|
|
51
|
+
html: '历史上,纺织专家一直使用燃烧测试来识别纤维:火焰的行为、气味和残留物揭示了纤维的化学性质。天然纤维(纤维素、蛋白质)具有与合成纤维(石油衍生的塑料)不同的特性。',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'title',
|
|
55
|
+
level: 2,
|
|
56
|
+
text: '针织与社交工具',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'paragraph',
|
|
60
|
+
html: '如果您是缝纫、针织或钩针爱好者,我们拥有先进的计算器:从针号转换器到面料耗用计算、保持比例的纸样缩放器,以及确保您的最终成品具有精确尺寸的织片密度(gauge)工具。',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'title',
|
|
64
|
+
level: 2,
|
|
65
|
+
text: '理性消费与可持续时尚',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'paragraph',
|
|
69
|
+
html: '每一次服装购买都是一个具有环境和社会影响的决定。了解纺织成分是迈向理性消费的第一步。可降解的天然纤维(棉、麻、毛)与合成纤维(涤纶、腈纶)的环境影响截然不同,后者需要 200 年才能分解。',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: '我们的工具使您能够进行更明智的购买,更好地护理衣服并延长其使用寿命 - - 这是最可持续的行为。',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
};
|
package/src/category/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { fabricProjectCalculator } from '../tool/fabricProjectCalculator/entry';
|
|
|
11
11
|
import { sewingPatternScaler } from '../tool/sewingPatternScaler/entry';
|
|
12
12
|
import { needleConverter } from '../tool/needleConverter/entry';
|
|
13
13
|
import { yarnCalculator } from '../tool/yarnCalculator/entry';
|
|
14
|
+
import { embroideryStitchPricingEstimator } from '../tool/embroideryStitchPricingEstimator/entry';
|
|
14
15
|
|
|
15
16
|
export const textilesCategory: TextilesCategoryEntry = {
|
|
16
17
|
icon: 'mdi:texture',
|
|
@@ -27,6 +28,7 @@ export const textilesCategory: TextilesCategoryEntry = {
|
|
|
27
28
|
sewingPatternScaler,
|
|
28
29
|
needleConverter,
|
|
29
30
|
yarnCalculator,
|
|
31
|
+
embroideryStitchPricingEstimator,
|
|
30
32
|
],
|
|
31
33
|
i18n: {
|
|
32
34
|
es: () => import('./i18n/es').then((m) => m.content),
|
package/src/category/seo.astro
CHANGED
package/src/data.ts
CHANGED
package/src/entries.ts
CHANGED
|
@@ -21,6 +21,8 @@ export { stainChemistry } from './tool/stainChemistry/entry';
|
|
|
21
21
|
export type { StainChemistryLocaleContent } from './tool/stainChemistry/entry';
|
|
22
22
|
export { yarnCalculator } from './tool/yarnCalculator/entry';
|
|
23
23
|
export type { YarnCalculatorLocaleContent } from './tool/yarnCalculator/entry';
|
|
24
|
+
export { embroideryStitchPricingEstimator } from './tool/embroideryStitchPricingEstimator/entry';
|
|
25
|
+
export type { EmbroideryStitchPricingEstimatorLocaleContent } from './tool/embroideryStitchPricingEstimator/entry';
|
|
24
26
|
export { textilesCategory } from './category';
|
|
25
27
|
import { burnTest } from './tool/burnTest/entry';
|
|
26
28
|
import { clothingSizeConverter } from './tool/clothingSizeConverter/entry';
|
|
@@ -34,4 +36,5 @@ import { sewingPatternScaler } from './tool/sewingPatternScaler/entry';
|
|
|
34
36
|
import { shoeSizeConverter } from './tool/shoeSizeConverter/entry';
|
|
35
37
|
import { stainChemistry } from './tool/stainChemistry/entry';
|
|
36
38
|
import { yarnCalculator } from './tool/yarnCalculator/entry';
|
|
37
|
-
|
|
39
|
+
import { embroideryStitchPricingEstimator } from './tool/embroideryStitchPricingEstimator/entry';
|
|
40
|
+
export const ALL_ENTRIES = [burnTest, clothingSizeConverter, fabricProjectCalculator, fabricTruth, fiberPrep, knittingGauge, laundryGuide, needleConverter, sewingPatternScaler, shoeSizeConverter, stainChemistry, yarnCalculator, embroideryStitchPricingEstimator];
|
package/src/env.d.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ export { FABRIC_PROJECT_CALCULATOR_TOOL } from './tool/fabricProjectCalculator';
|
|
|
13
13
|
export { SEWING_PATTERN_SCALER_TOOL } from './tool/sewingPatternScaler';
|
|
14
14
|
export { NEEDLE_CONVERTER_TOOL } from './tool/needleConverter';
|
|
15
15
|
export { YARN_CALCULATOR_TOOL } from './tool/yarnCalculator';
|
|
16
|
+
export { EMBROIDERY_STITCH_PRICING_ESTIMATOR_TOOL } from './tool/embroideryStitchPricingEstimator';
|
|
16
17
|
|
|
17
18
|
export type {
|
|
18
19
|
KnownLocale,
|
|
@@ -29,4 +30,3 @@ export type {
|
|
|
29
30
|
} from './types';
|
|
30
31
|
|
|
31
32
|
export { ALL_ENTRIES, ALL_TOOLS } from './tools';
|
|
32
|
-
|
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
---
|
|
2
|
-
import "@jjlmoya/utils-shared/theme.css";
|
|
3
|
-
import PreviewToolbar from "../components/PreviewToolbar.astro";
|
|
4
|
-
import type { KnownLocale } from "../types";
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
title: string;
|
|
8
|
-
currentLocale?: KnownLocale;
|
|
9
|
-
localeUrls?: Partial<Record<KnownLocale, string>>;
|
|
10
|
-
hasSidebar?: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const { title, currentLocale = "es", localeUrls = {}, hasSidebar = false } = Astro.props;
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
<!doctype html>
|
|
17
|
-
<html lang={currentLocale}>
|
|
18
|
-
<head>
|
|
19
|
-
<meta charset="UTF-8" />
|
|
20
|
-
<meta name="viewport" content="width=device-width" />
|
|
21
|
-
<title>{title} · preview</title>
|
|
22
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
23
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
24
|
-
<link
|
|
25
|
-
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap"
|
|
26
|
-
rel="stylesheet"
|
|
27
|
-
/>
|
|
28
|
-
|
|
29
|
-
<script is:inline>
|
|
30
|
-
(function () {
|
|
31
|
-
const saved = localStorage.getItem("theme") || "theme-dark";
|
|
32
|
-
document.documentElement.classList.add(saved);
|
|
33
|
-
})();
|
|
34
|
-
</script>
|
|
35
|
-
<slot name="head" />
|
|
36
|
-
</head>
|
|
37
|
-
<body>
|
|
38
|
-
<PreviewToolbar currentLocale={currentLocale} localeUrls={localeUrls} />
|
|
39
|
-
<div class:list={["page-wrapper", { "with-sidebar": hasSidebar }]}>
|
|
40
|
-
{
|
|
41
|
-
hasSidebar && (
|
|
42
|
-
<aside class="sidebar-area">
|
|
43
|
-
<slot name="sidebar" />
|
|
44
|
-
</aside>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
<main>
|
|
48
|
-
<slot />
|
|
49
|
-
</main>
|
|
50
|
-
</div>
|
|
51
|
-
</body>
|
|
52
|
-
</html>
|
|
53
|
-
|
|
54
|
-
<style is:global>
|
|
55
|
-
:root {
|
|
56
|
-
--accent: #f43f5e;
|
|
57
|
-
--primary-base: #9f1239;
|
|
58
|
-
--cyan: #06b6d4;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.theme-dark,
|
|
62
|
-
.theme-light {
|
|
63
|
-
--text-main: var(--text-base);
|
|
64
|
-
--border-color: var(--border-base);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
*,
|
|
68
|
-
*::before,
|
|
69
|
-
*::after {
|
|
70
|
-
box-sizing: border-box;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
body {
|
|
74
|
-
background-color: var(--bg-page);
|
|
75
|
-
color: var(--text-base);
|
|
76
|
-
margin: 0;
|
|
77
|
-
min-height: 100vh;
|
|
1
|
+
---
|
|
2
|
+
import "@jjlmoya/utils-shared/theme.css";
|
|
3
|
+
import PreviewToolbar from "../components/PreviewToolbar.astro";
|
|
4
|
+
import type { KnownLocale } from "../types";
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
title: string;
|
|
8
|
+
currentLocale?: KnownLocale;
|
|
9
|
+
localeUrls?: Partial<Record<KnownLocale, string>>;
|
|
10
|
+
hasSidebar?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const { title, currentLocale = "es", localeUrls = {}, hasSidebar = false } = Astro.props;
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<!doctype html>
|
|
17
|
+
<html lang={currentLocale}>
|
|
18
|
+
<head>
|
|
19
|
+
<meta charset="UTF-8" />
|
|
20
|
+
<meta name="viewport" content="width=device-width" />
|
|
21
|
+
<title>{title} · preview</title>
|
|
22
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
23
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
24
|
+
<link
|
|
25
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap"
|
|
26
|
+
rel="stylesheet"
|
|
27
|
+
/>
|
|
28
|
+
|
|
29
|
+
<script is:inline>
|
|
30
|
+
(function () {
|
|
31
|
+
const saved = localStorage.getItem("theme") || "theme-dark";
|
|
32
|
+
document.documentElement.classList.add(saved);
|
|
33
|
+
})();
|
|
34
|
+
</script>
|
|
35
|
+
<slot name="head" />
|
|
36
|
+
</head>
|
|
37
|
+
<body>
|
|
38
|
+
<PreviewToolbar currentLocale={currentLocale} localeUrls={localeUrls} />
|
|
39
|
+
<div class:list={["page-wrapper", { "with-sidebar": hasSidebar }]}>
|
|
40
|
+
{
|
|
41
|
+
hasSidebar && (
|
|
42
|
+
<aside class="sidebar-area">
|
|
43
|
+
<slot name="sidebar" />
|
|
44
|
+
</aside>
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
<main>
|
|
48
|
+
<slot />
|
|
49
|
+
</main>
|
|
50
|
+
</div>
|
|
51
|
+
</body>
|
|
52
|
+
</html>
|
|
53
|
+
|
|
54
|
+
<style is:global>
|
|
55
|
+
:root {
|
|
56
|
+
--accent: #f43f5e;
|
|
57
|
+
--primary-base: #9f1239;
|
|
58
|
+
--cyan: #06b6d4;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.theme-dark,
|
|
62
|
+
.theme-light {
|
|
63
|
+
--text-main: var(--text-base);
|
|
64
|
+
--border-color: var(--border-base);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
*,
|
|
68
|
+
*::before,
|
|
69
|
+
*::after {
|
|
70
|
+
box-sizing: border-box;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
body {
|
|
74
|
+
background-color: var(--bg-page);
|
|
75
|
+
color: var(--text-base);
|
|
76
|
+
margin: 0;
|
|
77
|
+
min-height: 100vh;
|
|
78
78
|
transition:
|
|
79
79
|
background-color 0.3s ease,
|
|
80
80
|
color 0.3s ease;
|
|
81
81
|
font-family: Inter, sans-serif;
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
main {
|
|
85
|
-
padding: 0 2rem;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.page-wrapper {
|
|
89
|
-
display: flex;
|
|
90
|
-
flex-direction: column;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.page-wrapper.with-sidebar {
|
|
94
|
-
display: grid;
|
|
95
|
-
grid-template-columns: 240px 1fr;
|
|
96
|
-
min-height: 100vh;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.sidebar-area {
|
|
100
|
-
position: sticky;
|
|
101
|
-
top: 0;
|
|
102
|
-
height: 100vh;
|
|
103
|
-
overflow-y: auto;
|
|
104
|
-
border-right: 1px solid var(--border-color);
|
|
105
|
-
background: var(--bg-page);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@media (max-width: 768px) {
|
|
109
|
-
.page-wrapper.with-sidebar {
|
|
110
|
-
grid-template-columns: 1fr;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.sidebar-area {
|
|
114
|
-
display: none;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
</style>
|
|
118
|
-
|
|
83
|
+
|
|
84
|
+
main {
|
|
85
|
+
padding: 0 2rem;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.page-wrapper {
|
|
89
|
+
display: flex;
|
|
90
|
+
flex-direction: column;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.page-wrapper.with-sidebar {
|
|
94
|
+
display: grid;
|
|
95
|
+
grid-template-columns: 240px 1fr;
|
|
96
|
+
min-height: 100vh;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.sidebar-area {
|
|
100
|
+
position: sticky;
|
|
101
|
+
top: 0;
|
|
102
|
+
height: 100vh;
|
|
103
|
+
overflow-y: auto;
|
|
104
|
+
border-right: 1px solid var(--border-color);
|
|
105
|
+
background: var(--bg-page);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@media (max-width: 768px) {
|
|
109
|
+
.page-wrapper.with-sidebar {
|
|
110
|
+
grid-template-columns: 1fr;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.sidebar-area {
|
|
114
|
+
display: none;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
</style>
|
|
118
|
+
|
package/src/pages/index.astro
CHANGED