postcss-kazaksha 1.0.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.
@@ -0,0 +1,325 @@
1
+ export const dictionary = {
2
+ // === ТҮСТЕР ===
3
+ 'түс': 'color',
4
+ 'артқы-түс': 'background-color',
5
+ 'артқы': 'background',
6
+ 'артқы-сурет': 'background-image',
7
+ 'артқы-орналасу': 'background-position',
8
+ 'артқы-өлшем': 'background-size',
9
+ 'артқы-қайталау': 'background-repeat',
10
+ 'артқы-бекіту': 'background-attachment',
11
+ 'шекара-түс': 'border-color',
12
+ 'контур-түс': 'outline-color',
13
+
14
+ // Түстер атаулары
15
+ 'қызыл': 'red',
16
+ 'көк': 'blue',
17
+ 'жасыл': 'green',
18
+ 'сары': 'yellow',
19
+ 'қара': 'black',
20
+ 'ақ': 'white',
21
+ 'сұр': 'gray',
22
+ 'қызғылт': 'pink',
23
+ 'күлгін': 'purple',
24
+ 'қоңыр': 'brown',
25
+ 'апельсин': 'orange',
26
+ 'көгілдір': 'cyan',
27
+ 'мөлдір': 'transparent',
28
+
29
+ // === ӨЛШЕМДЕР ===
30
+ 'ені': 'width',
31
+ 'биіктігі': 'height',
32
+ 'ең-көп-ені': 'max-width',
33
+ 'ең-көп-биіктігі': 'max-height',
34
+ 'ең-аз-ені': 'min-width',
35
+ 'ең-аз-биіктігі': 'min-height',
36
+
37
+ // === ШЕКАРАЛАР ===
38
+ 'шекара': 'border',
39
+ 'шекара-ені': 'border-width',
40
+ 'шекара-стилі': 'border-style',
41
+ 'шекара-радиусы': 'border-radius',
42
+ 'шекара-жоғары': 'border-top',
43
+ 'шекара-төмен': 'border-bottom',
44
+ 'шекара-сол': 'border-left',
45
+ 'шекара-оң': 'border-right',
46
+ 'шекара-жоғары-ені': 'border-top-width',
47
+ 'шекара-төмен-ені': 'border-bottom-width',
48
+ 'шекара-сол-ені': 'border-left-width',
49
+ 'шекара-оң-ені': 'border-right-width',
50
+ 'шекара-жоғары-түс': 'border-top-color',
51
+ 'шекара-төмен-түс': 'border-bottom-color',
52
+ 'шекара-сол-түс': 'border-left-color',
53
+ 'шекара-оң-түс': 'border-right-color',
54
+ 'шекара-жоғары-сол-радиус': 'border-top-left-radius',
55
+ 'шекара-жоғары-оң-радиус': 'border-top-right-radius',
56
+ 'шекара-төмен-сол-радиус': 'border-bottom-left-radius',
57
+ 'шекара-төмен-оң-радиус': 'border-bottom-right-radius',
58
+
59
+ // === КОНТУР ===
60
+ 'контур': 'outline',
61
+ 'контур-ені': 'outline-width',
62
+ 'контур-стилі': 'outline-style',
63
+ 'контур-ығысу': 'outline-offset',
64
+
65
+ // === ОРНАЛАСУ ===
66
+ 'орналасу': 'position',
67
+ 'көрсету': 'display',
68
+ 'көрінуі': 'visibility',
69
+ 'жасырын': 'none',
70
+ 'блок': 'block',
71
+ 'қатар': 'inline',
72
+ 'қатар-блок': 'inline-block',
73
+ 'икемді': 'flex',
74
+ 'қатар-икемді': 'inline-flex',
75
+ 'тор': 'grid',
76
+ 'қатар-тор': 'inline-grid',
77
+
78
+ // Position мәндері
79
+ 'салыстырмалы': 'relative',
80
+ 'абсолютті': 'absolute',
81
+ 'бекітілген': 'fixed',
82
+ 'жабысқақ': 'sticky',
83
+ 'статикалық': 'static',
84
+
85
+ // Координаттар
86
+ 'жоғары': 'top',
87
+ 'төмен': 'bottom',
88
+ 'сол': 'left',
89
+ 'оң': 'right',
90
+
91
+ // === MARGIN & PADDING ===
92
+ 'сыртқы-бос': 'margin',
93
+ 'ішкі-бос': 'padding',
94
+ 'сыртқы-бос-жоғары': 'margin-top',
95
+ 'сыртқы-бос-төмен': 'margin-bottom',
96
+ 'сыртқы-бос-сол': 'margin-left',
97
+ 'сыртқы-бос-оң': 'margin-right',
98
+ 'ішкі-бос-жоғары': 'padding-top',
99
+ 'ішкі-бос-төмен': 'padding-bottom',
100
+ 'ішкі-бос-сол': 'padding-left',
101
+ 'ішкі-бос-оң': 'padding-right',
102
+
103
+ // === МӘТІН ===
104
+ 'қаріп': 'font',
105
+ 'қаріп-өлшемі': 'font-size',
106
+ 'қаріп-салмағы': 'font-weight',
107
+ 'қаріп-жанұясы': 'font-family',
108
+ 'қаріп-стилі': 'font-style',
109
+ 'мәтін-туралау': 'text-align',
110
+ 'мәтін-безендіру': 'text-decoration',
111
+ 'мәтін-түрлендіру': 'text-transform',
112
+ 'мәтін-шегіну': 'text-indent',
113
+ 'жол-биіктігі': 'line-height',
114
+ 'әріп-аралығы': 'letter-spacing',
115
+ 'сөз-аралығы': 'word-spacing',
116
+ 'сөз-орау': 'word-wrap',
117
+ 'сөз-үзу': 'word-break',
118
+ 'ақ-кеңістік': 'white-space',
119
+ 'мәтін-толық': 'text-overflow',
120
+ 'мәтін-көлеңке': 'text-shadow',
121
+ 'жазу-режимі': 'writing-mode',
122
+ 'қаріп-тегістеу': 'font-smooth',
123
+
124
+ // Мәтін туралау
125
+ 'орта': 'center',
126
+ 'екі-жаққа': 'justify',
127
+
128
+ // Қаріп салмағы
129
+ 'жуан': 'bold',
130
+ 'жіңішке': 'lighter',
131
+ 'қалыпты': 'normal',
132
+ 'қалың': 'bolder',
133
+
134
+ // Мәтін түрлендіру
135
+ 'бас-әріп': 'uppercase',
136
+ 'кіші-әріп': 'lowercase',
137
+ 'бірінші-бас': 'capitalize',
138
+
139
+ // === FLEXBOX ===
140
+ 'икемді-бағыт': 'flex-direction',
141
+ 'икемді-орама': 'flex-wrap',
142
+ 'икемді-ағын': 'flex-flow',
143
+ 'негіздеу-мазмұн': 'justify-content',
144
+ 'туралау-элементтер': 'align-items',
145
+ 'туралау-мазмұн': 'align-content',
146
+ 'туралау-өзі': 'align-self',
147
+ 'икемді-өсу': 'flex-grow',
148
+ 'икемді-кішірейту': 'flex-shrink',
149
+ 'икемді-негіз': 'flex-basis',
150
+ 'реттілік': 'order',
151
+ 'орын': 'gap',
152
+ 'қатар-орын': 'row-gap',
153
+ 'баған-орын': 'column-gap',
154
+
155
+ // Flexbox мәндері
156
+ 'қатар': 'row',
157
+ 'қатар-кері': 'row-reverse',
158
+ 'баған': 'column',
159
+ 'баған-кері': 'column-reverse',
160
+ 'орау': 'wrap',
161
+ 'орау-кері': 'wrap-reverse',
162
+ 'аралық': 'space-between',
163
+ 'айналасында': 'space-around',
164
+ 'тең-аралық': 'space-evenly',
165
+ 'созу': 'stretch',
166
+ 'бастау': 'flex-start',
167
+ 'аяқтау': 'flex-end',
168
+
169
+ // === GRID ===
170
+ 'тор-үлгі': 'grid-template',
171
+ 'тор-үлгі-бағандар': 'grid-template-columns',
172
+ 'тор-үлгі-қатарлар': 'grid-template-rows',
173
+ 'тор-үлгі-аймақтар': 'grid-template-areas',
174
+ 'тор-баған': 'grid-column',
175
+ 'тор-қатар': 'grid-row',
176
+ 'тор-баған-бастау': 'grid-column-start',
177
+ 'тор-баған-аяқ': 'grid-column-end',
178
+ 'тор-қатар-бастау': 'grid-row-start',
179
+ 'тор-қатар-аяқ': 'grid-row-end',
180
+ 'тор-аймақ': 'grid-area',
181
+ 'тор-авто-бағандар': 'grid-auto-columns',
182
+ 'тор-авто-қатарлар': 'grid-auto-rows',
183
+ 'тор-авто-ағын': 'grid-auto-flow',
184
+
185
+ // === АНИМАЦИЯ & ӨТУЛЕР ===
186
+ 'өту': 'transition',
187
+ 'өту-қасиет': 'transition-property',
188
+ 'өту-ұзақтық': 'transition-duration',
189
+ 'өту-уақыт': 'transition-timing-function',
190
+ 'өту-кідіріс': 'transition-delay',
191
+ 'түрлендіру': 'transform',
192
+ 'түрлендіру-бастау': 'transform-origin',
193
+ 'түрлендіру-стиль': 'transform-style',
194
+ 'анимация': 'animation',
195
+ 'анимация-аты': 'animation-name',
196
+ 'анимация-ұзақтық': 'animation-duration',
197
+ 'анимация-уақыт': 'animation-timing-function',
198
+ 'анимация-кідіріс': 'animation-delay',
199
+ 'анимация-қайталау': 'animation-iteration-count',
200
+ 'анимация-бағыт': 'animation-direction',
201
+ 'анимация-толтыру': 'animation-fill-mode',
202
+ 'анимация-күй': 'animation-play-state',
203
+
204
+ // === КӨЛЕҢКЕ & ЭФФЕКТТЕР ===
205
+ 'көлеңке': 'box-shadow',
206
+ 'мөлдірлік': 'opacity',
207
+ 'сүзгі': 'filter',
208
+ 'артқы-сүзгі': 'backdrop-filter',
209
+ 'қиылысу-режимі': 'mix-blend-mode',
210
+ 'фон-қиылысу': 'background-blend-mode',
211
+
212
+ // === АСПАП & ИНТЕРФЕЙС ===
213
+ 'аспап': 'cursor',
214
+ 'меңзер': 'pointer',
215
+ 'қол': 'grab',
216
+ 'ұстау': 'grabbing',
217
+ 'өлшемді': 'resize',
218
+ 'пайдаланушы-таңдау': 'user-select',
219
+ 'нұсқау-оқиғалары': 'pointer-events',
220
+
221
+ // === ТАСУ & АЙНАЛДЫРУ ===
222
+ 'тасу': 'overflow',
223
+ 'тасу-х': 'overflow-x',
224
+ 'тасу-у': 'overflow-y',
225
+ 'айналдыру': 'scroll-behavior',
226
+ 'көрінбейді': 'hidden',
227
+ 'көрінеді': 'visible',
228
+ 'авто': 'auto',
229
+ 'айналдыру-жолақ': 'scroll-snap-type',
230
+ 'айналдыру-туралау': 'scroll-snap-align',
231
+
232
+ // === Z-INDEX & ҚАБАТТАР ===
233
+ 'қабат': 'z-index',
234
+ 'оқшаулау': 'isolation',
235
+
236
+ // === КЕСТЕ ===
237
+ 'кесте-орналасу': 'table-layout',
238
+ 'шекара-ығысу': 'border-collapse',
239
+ 'шекара-аралық': 'border-spacing',
240
+ 'босату-орындар': 'empty-cells',
241
+ 'тақырып-жағы': 'caption-side',
242
+
243
+ // === ТІЗІМ ===
244
+ 'тізім-стиль': 'list-style',
245
+ 'тізім-стиль-түрі': 'list-style-type',
246
+ 'тізім-стиль-орны': 'list-style-position',
247
+ 'тізім-стиль-сурет': 'list-style-image',
248
+
249
+ // === МАЗМҰН ===
250
+ 'мазмұн': 'content',
251
+ 'есептегіш-қайта-орнату': 'counter-reset',
252
+ 'есептегіш-өсу': 'counter-increment',
253
+
254
+ // === БАСҚА ҚАСИЕТТЕР ===
255
+ 'қорап-өлшемі': 'box-sizing',
256
+ 'қорап-безендіру': 'box-decoration-break',
257
+ 'нысан-сәйкес': 'object-fit',
258
+ 'нысан-орны': 'object-position',
259
+ 'аспект-қатынас': 'aspect-ratio',
260
+ 'бағыт': 'direction',
261
+ 'юникод-биди': 'unicode-bidi',
262
+ 'баған-саны': 'column-count',
263
+ 'баған-ені': 'column-width',
264
+ 'баған-орын': 'column-gap',
265
+ 'баған-ереже': 'column-rule',
266
+ 'баған-аралық': 'column-span',
267
+ 'баған-толтыру': 'column-fill',
268
+ 'үзу-ішінде': 'break-inside',
269
+ 'үзу-алдында': 'break-before',
270
+ 'үзу-кейін': 'break-after',
271
+ 'орфа': 'orphans',
272
+ 'жесірлер': 'widows',
273
+ 'бетке-үзу': 'page-break-inside',
274
+ 'қамту': 'clip',
275
+ 'қамту-жол': 'clip-path',
276
+ 'маска': 'mask',
277
+ 'маска-сурет': 'mask-image',
278
+ 'маска-өлшем': 'mask-size',
279
+ 'маска-орны': 'mask-position',
280
+ 'пішін-сыртында': 'shape-outside',
281
+ 'пішін-шегі': 'shape-margin',
282
+ 'пішін-сурет': 'shape-image-threshold',
283
+ 'өзгерту': 'will-change',
284
+ 'сенімділік': 'contain',
285
+ 'болжам': 'appearance',
286
+
287
+ // === МӘНДЕР ===
288
+ 'автоматты': 'auto',
289
+ 'жоқ': 'none',
290
+ 'қатты': 'solid',
291
+ 'үзікті': 'dashed',
292
+ 'нүктелі': 'dotted',
293
+ 'қосарлы': 'double',
294
+ 'ойық': 'groove',
295
+ 'қабық': 'ridge',
296
+ 'ену': 'inset',
297
+ 'шығу': 'outset',
298
+ 'көп-нүкте': 'ellipsis',
299
+ 'шексіз': 'infinite',
300
+ 'алға': 'forwards',
301
+ 'артқа': 'backwards',
302
+ 'екеуі-де': 'both',
303
+ 'кері': 'reverse',
304
+ 'кезекпе-кезек': 'alternate',
305
+ 'кезекпе-кезек-кері': 'alternate-reverse',
306
+ 'жүгіру': 'running',
307
+ 'кідіріс': 'paused',
308
+ 'қамту': 'cover',
309
+ 'сақтау': 'contain',
310
+ 'толтыру': 'fill',
311
+ 'масштаб-төмен': 'scale-down',
312
+ 'қайталау': 'repeat',
313
+ 'қайталамау': 'no-repeat',
314
+ 'қайталау-х': 'repeat-x',
315
+ 'қайталау-у': 'repeat-y',
316
+ 'айналма': 'round',
317
+ 'кеңістік': 'space',
318
+ 'шекара-қорап': 'border-box',
319
+ 'мазмұн-қорап': 'content-box',
320
+ 'мұраға-қалдыру': 'inherit',
321
+ 'бастапқы': 'initial',
322
+ 'орнатылмаған': 'unset',
323
+ 'тастау': 'revert',
324
+ };
325
+
package/index.js ADDED
@@ -0,0 +1,50 @@
1
+ // postcss-kazaksha/index.js
2
+ const postcss = require('postcss');
3
+ const dictionary = require('./dictionary');
4
+
5
+
6
+ module.exports = postcss.plugin('postcss-kazaksha', () => {
7
+ return (root) => {
8
+ root.walkDecls((decl) => {
9
+ if (decl.prop.startsWith('--')) {
10
+ const varName = decl.prop.substring(2);
11
+ const translatedVar = dictionary[varName];
12
+ if (translatedVar) {
13
+ decl.prop = `--${translatedVar}`;
14
+ }
15
+ }
16
+
17
+ const translatedProp = dictionary[decl.prop.toLowerCase()];
18
+ if (translatedProp) {
19
+ decl.prop = translatedProp;
20
+ }
21
+
22
+ let value = decl.value;
23
+
24
+ value = value.replace(/var\(\s*--([^)]+)\s*\)/g, (match, varName) => {
25
+ const translatedVar = dictionary[varName.trim()];
26
+ return translatedVar ? `var(--${translatedVar})` : match;
27
+ });
28
+
29
+ Object.keys(dictionary).forEach((kazakh) => {
30
+ const regex = new RegExp(`\\b${kazakh}\\b`, 'gi');
31
+ value = value.replace(regex, dictionary[kazakh]);
32
+ });
33
+
34
+ decl.value = value;
35
+ });
36
+
37
+ root.walkAtRules((atRule) => {
38
+ if (atRule.params) {
39
+ let params = atRule.params;
40
+ Object.keys(dictionary).forEach((kazakh) => {
41
+ const regex = new RegExp(`\\b${kazakh}\\b`, 'gi');
42
+ params = params.replace(regex, dictionary[kazakh]);
43
+ });
44
+ atRule.params = params;
45
+ }
46
+ });
47
+ };
48
+ });
49
+
50
+ module.exports.postcss = true;
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "postcss-kazaksha",
3
+ "version": "1.0.0",
4
+ "description": "PostCSS плагині - қазақша CSS жазып, стандартты CSS-ке аударыңыз",
5
+ "main": "index.js",
6
+ "keywords": [
7
+ "postcss",
8
+ "postcss-plugin",
9
+ "css",
10
+ "kazakh",
11
+ "kazaksha",
12
+ "қазақша",
13
+ "i18n"
14
+ ],
15
+ "author": "baur.sha",
16
+ "license": "MIT",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/Baukaalm/postcss-kazaksha.git"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/Baukaalm/postcss-kazaksha/issues"
23
+ },
24
+ "peerDependencies": {
25
+ "postcss": "^8.0.0"
26
+ },
27
+ "devDependencies": {
28
+ "postcss": "^8.4.0"
29
+ }
30
+ }
package/readme.md ADDED
@@ -0,0 +1,61 @@
1
+ # postcss-kazaksha 🇰🇿
2
+
3
+ PostCSS плагині - қазақша CSS жазып, стандартты CSS-ке аударыңыз!
4
+
5
+ ## Орнату
6
+ ```bash
7
+ npm install postcss-kazaksha
8
+ ```
9
+
10
+ ## Қолдану
11
+
12
+ **postcss.config.js:**
13
+ ```javascript
14
+ module.exports = {
15
+ plugins: [
16
+ require('postcss-kazaksha')
17
+ ]
18
+ }
19
+ ```
20
+
21
+ ## Мысал
22
+
23
+ **Қазақша CSS:**
24
+ ```css
25
+ :root {
26
+ --негізгі-түс: көк;
27
+ --екінші-түс: жасыл;
28
+ }
29
+
30
+ .батырма {
31
+ артқы-түс: var(--негізгі-түс);
32
+ түс: ақ;
33
+ өту: барлық 0.3s;
34
+ түрлендіру: масштаб(1.1);
35
+ }
36
+
37
+ .тор-контейнер {
38
+ көрсету: тор;
39
+ тор-үлгі-бағандар: қайталау(3, 1fr);
40
+ орын: 20px;
41
+ }
42
+
43
+ @media (ең-аз-ені: 768px) {
44
+ .контейнер {
45
+ ені: 100%;
46
+ }
47
+ }
48
+ ```
49
+
50
+ ## Қолдау көрсетілетін қасиеттер
51
+
52
+ - Түстер: түс, артқы-түс, шекара-түс
53
+ - Өлшемдер: ені, биіктігі
54
+ - Орналасу: көрсету, орналасу
55
+ - Flexbox: икемді, негіздеу-мазмұн, туралау-элементтер
56
+ - Typography: қаріп-өлшемі, қаріп-салмағы, мәтін-туралау
57
+ - және т.б.
58
+
59
+ ## Лицензия
60
+
61
+ MIT