@enjoys/context-engine 1.2.0 → 1.4.1
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/data/codeActions/angular.json +126 -0
- package/data/codeActions/css.json +111 -0
- package/data/codeActions/nestjs.json +124 -0
- package/data/codeActions/nextjs.json +198 -0
- package/data/codeActions/react.json +154 -0
- package/data/codeActions/shadcn.json +112 -0
- package/data/codeActions/shell.json +169 -26
- package/data/codeActions/tailwindcss.json +76 -0
- package/data/codeLens/angular.json +22 -0
- package/data/codeLens/css.json +68 -0
- package/data/codeLens/nestjs.json +21 -0
- package/data/codeLens/nextjs.json +117 -0
- package/data/codeLens/react.json +89 -0
- package/data/codeLens/shadcn.json +89 -0
- package/data/codeLens/shell.json +59 -17
- package/data/codeLens/tailwindcss.json +103 -0
- package/data/color/angular.json +21 -0
- package/data/color/css.json +124 -0
- package/data/color/nestjs.json +18 -0
- package/data/color/nextjs.json +22 -0
- package/data/color/react.json +93 -0
- package/data/color/shadcn.json +66 -0
- package/data/color/shell.json +106 -80
- package/data/color/tailwindcss.json +53 -0
- package/data/commands/angular.json +312 -0
- package/data/commands/css.json +41 -0
- package/data/commands/manifest.json +734 -727
- package/data/commands/nestjs.json +273 -0
- package/data/commands/nextjs.json +123 -0
- package/data/commands/react.json +210 -0
- package/data/commands/shadcn.json +410 -0
- package/data/commands/shell.json +571 -41
- package/data/commands/tailwindcss.json +53 -0
- package/data/completion/angular.json +1490 -0
- package/data/completion/css.json +1176 -0
- package/data/completion/javascript.json +27 -0
- package/data/completion/nestjs.json +1454 -0
- package/data/completion/nextjs.json +1373 -0
- package/data/completion/react.json +1319 -0
- package/data/completion/redis-cli.json +1 -1
- package/data/completion/shadcn.json +1202 -0
- package/data/completion/shell.json +2446 -510
- package/data/completion/tailwindcss.json +284 -0
- package/data/completion/typescript.json +27 -0
- package/data/declaration/angular.json +46 -0
- package/data/declaration/css.json +59 -0
- package/data/declaration/nestjs.json +47 -0
- package/data/declaration/nextjs.json +274 -0
- package/data/declaration/react.json +199 -0
- package/data/declaration/shadcn.json +211 -0
- package/data/declaration/shell.json +343 -24
- package/data/declaration/tailwindcss.json +137 -0
- package/data/definition/angular.json +670 -0
- package/data/definition/css.json +115 -0
- package/data/definition/nestjs.json +684 -0
- package/data/definition/nextjs.json +439 -0
- package/data/definition/react.json +397 -0
- package/data/definition/redis-cli.json +1 -1
- package/data/definition/shadcn.json +99 -0
- package/data/definition/shell.json +820 -0
- package/data/definition/tailwindcss.json +115 -0
- package/data/documentHighlight/angular.json +414 -0
- package/data/documentHighlight/css.json +125 -0
- package/data/documentHighlight/nestjs.json +115 -0
- package/data/documentHighlight/nextjs.json +212 -0
- package/data/documentHighlight/react.json +119 -0
- package/data/documentHighlight/shadcn.json +168 -0
- package/data/documentHighlight/shell.json +664 -334
- package/data/documentHighlight/tailwindcss.json +160 -0
- package/data/documentRangeFormatting/angular.json +45 -0
- package/data/documentRangeFormatting/css.json +101 -0
- package/data/documentRangeFormatting/nestjs.json +17 -0
- package/data/documentRangeFormatting/nextjs.json +17 -0
- package/data/documentRangeFormatting/react.json +78 -0
- package/data/documentRangeFormatting/shadcn.json +45 -0
- package/data/documentRangeFormatting/shell.json +120 -53
- package/data/documentRangeFormatting/tailwindcss.json +55 -0
- package/data/documentSymbol/angular.json +180 -0
- package/data/documentSymbol/css.json +96 -0
- package/data/documentSymbol/nestjs.json +152 -0
- package/data/documentSymbol/nextjs.json +159 -0
- package/data/documentSymbol/react.json +145 -0
- package/data/documentSymbol/shadcn.json +131 -0
- package/data/documentSymbol/shell.json +166 -26
- package/data/documentSymbol/tailwindcss.json +110 -0
- package/data/foldingRange/angular.json +99 -0
- package/data/foldingRange/css.json +66 -0
- package/data/foldingRange/nestjs.json +26 -0
- package/data/foldingRange/nextjs.json +26 -0
- package/data/foldingRange/react.json +120 -0
- package/data/foldingRange/shadcn.json +93 -0
- package/data/foldingRange/shell.json +106 -46
- package/data/foldingRange/tailwindcss.json +60 -0
- package/data/formatting/angular.json +21 -0
- package/data/formatting/css.json +73 -0
- package/data/formatting/nestjs.json +23 -0
- package/data/formatting/nextjs.json +23 -0
- package/data/formatting/react.json +71 -0
- package/data/formatting/shadcn.json +61 -0
- package/data/formatting/shell.json +103 -19
- package/data/formatting/tailwindcss.json +48 -0
- package/data/hover/angular.json +455 -0
- package/data/hover/css.json +300 -0
- package/data/hover/nestjs.json +296 -0
- package/data/hover/nextjs.json +305 -0
- package/data/hover/react.json +173 -0
- package/data/hover/redis-cli.json +1 -1
- package/data/hover/shadcn.json +450 -0
- package/data/hover/shell.json +684 -75
- package/data/hover/tailwindcss.json +968 -0
- package/data/implementation/angular.json +22 -0
- package/data/implementation/css.json +65 -0
- package/data/implementation/nestjs.json +24 -0
- package/data/implementation/nextjs.json +137 -0
- package/data/implementation/react.json +125 -0
- package/data/implementation/shadcn.json +89 -0
- package/data/implementation/shell.json +59 -3
- package/data/implementation/tailwindcss.json +59 -0
- package/data/inlayHints/angular.json +24 -0
- package/data/inlayHints/css.json +87 -0
- package/data/inlayHints/nestjs.json +24 -0
- package/data/inlayHints/nextjs.json +143 -0
- package/data/inlayHints/react.json +177 -0
- package/data/inlayHints/shadcn.json +109 -0
- package/data/inlayHints/shell.json +223 -35
- package/data/inlayHints/tailwindcss.json +111 -0
- package/data/inlineCompletions/angular.json +135 -0
- package/data/inlineCompletions/css.json +125 -0
- package/data/inlineCompletions/javascript.json +12 -0
- package/data/inlineCompletions/nestjs.json +25 -0
- package/data/inlineCompletions/nextjs.json +179 -0
- package/data/inlineCompletions/react.json +203 -0
- package/data/inlineCompletions/shadcn.json +115 -0
- package/data/inlineCompletions/shell.json +185 -35
- package/data/inlineCompletions/tailwindcss.json +411 -0
- package/data/inlineCompletions/typescript.json +12 -0
- package/data/linkedEditingRange/angular.json +23 -0
- package/data/linkedEditingRange/css.json +40 -0
- package/data/linkedEditingRange/nestjs.json +10 -0
- package/data/linkedEditingRange/nextjs.json +11 -0
- package/data/linkedEditingRange/react.json +75 -0
- package/data/linkedEditingRange/shadcn.json +23 -0
- package/data/linkedEditingRange/shell.json +25 -25
- package/data/linkedEditingRange/tailwindcss.json +30 -0
- package/data/links/angular.json +95 -0
- package/data/links/css.json +55 -0
- package/data/links/nestjs.json +130 -0
- package/data/links/nextjs.json +91 -0
- package/data/links/react.json +75 -0
- package/data/links/shadcn.json +98 -0
- package/data/links/shell.json +56 -0
- package/data/links/tailwindcss.json +65 -0
- package/data/manifest.json +399 -150
- package/data/onTypeFormatting/angular.json +14 -0
- package/data/onTypeFormatting/css.json +82 -0
- package/data/onTypeFormatting/nestjs.json +16 -0
- package/data/onTypeFormatting/nextjs.json +17 -0
- package/data/onTypeFormatting/react.json +127 -0
- package/data/onTypeFormatting/shadcn.json +54 -0
- package/data/onTypeFormatting/shell.json +72 -68
- package/data/onTypeFormatting/tailwindcss.json +63 -0
- package/data/rangeSemanticTokens/angular.json +140 -0
- package/data/rangeSemanticTokens/css.json +125 -0
- package/data/rangeSemanticTokens/nestjs.json +27 -0
- package/data/rangeSemanticTokens/nextjs.json +28 -0
- package/data/rangeSemanticTokens/react.json +216 -0
- package/data/rangeSemanticTokens/shadcn.json +140 -0
- package/data/rangeSemanticTokens/shell.json +247 -69
- package/data/rangeSemanticTokens/tailwindcss.json +186 -0
- package/data/references/angular.json +26 -0
- package/data/references/css.json +65 -0
- package/data/references/nestjs.json +24 -0
- package/data/references/nextjs.json +178 -0
- package/data/references/react.json +192 -0
- package/data/references/shadcn.json +101 -0
- package/data/references/shell.json +323 -92
- package/data/references/tailwindcss.json +125 -0
- package/data/rename/angular.json +131 -0
- package/data/rename/css.json +91 -0
- package/data/rename/nestjs.json +32 -0
- package/data/rename/nextjs.json +31 -0
- package/data/rename/react.json +88 -0
- package/data/rename/shadcn.json +79 -0
- package/data/rename/shell.json +101 -31
- package/data/rename/tailwindcss.json +58 -0
- package/data/selectionRange/angular.json +95 -0
- package/data/selectionRange/css.json +55 -0
- package/data/selectionRange/nestjs.json +21 -0
- package/data/selectionRange/nextjs.json +22 -0
- package/data/selectionRange/react.json +87 -0
- package/data/selectionRange/shadcn.json +89 -0
- package/data/selectionRange/shell.json +65 -35
- package/data/selectionRange/tailwindcss.json +35 -0
- package/data/semanticTokens/angular.json +198 -0
- package/data/semanticTokens/css.json +107 -0
- package/data/semanticTokens/nestjs.json +35 -0
- package/data/semanticTokens/nextjs.json +38 -0
- package/data/semanticTokens/react.json +215 -0
- package/data/semanticTokens/shadcn.json +180 -0
- package/data/semanticTokens/shell.json +238 -65
- package/data/semanticTokens/tailwindcss.json +161 -0
- package/data/signatureHelp/angular.json +182 -0
- package/data/signatureHelp/css.json +137 -0
- package/data/signatureHelp/nestjs.json +128 -0
- package/data/signatureHelp/nextjs.json +127 -0
- package/data/signatureHelp/react.json +281 -0
- package/data/signatureHelp/shadcn.json +237 -0
- package/data/signatureHelp/shell.json +797 -104
- package/data/signatureHelp/tailwindcss.json +64 -0
- package/data/typeDefinition/angular.json +362 -0
- package/data/typeDefinition/css.json +53 -0
- package/data/typeDefinition/nestjs.json +334 -0
- package/data/typeDefinition/nextjs.json +285 -0
- package/data/typeDefinition/react.json +236 -0
- package/data/typeDefinition/shadcn.json +292 -0
- package/data/typeDefinition/shell.json +104 -40
- package/data/typeDefinition/tailwindcss.json +47 -0
- package/package.json +1 -1
- package/data/codeActions/bash.json +0 -169
- package/data/codeActions/zsh.json +0 -49
- package/data/codeLens/bash.json +0 -75
- package/data/codeLens/zsh.json +0 -19
- package/data/color/bash.json +0 -100
- package/data/color/zsh.json +0 -80
- package/data/commands/bash.json +0 -102
- package/data/commands/zsh.json +0 -166
- package/data/completion/bash.json +0 -1184
- package/data/completion/zsh.json +0 -973
- package/data/declaration/bash.json +0 -301
- package/data/declaration/zsh.json +0 -205
- package/data/definition/bash.json +0 -565
- package/data/definition/zsh.json +0 -350
- package/data/documentHighlight/bash.json +0 -393
- package/data/documentHighlight/zsh.json +0 -266
- package/data/documentRangeFormatting/bash.json +0 -41
- package/data/documentRangeFormatting/zsh.json +0 -59
- package/data/documentSymbol/bash.json +0 -124
- package/data/documentSymbol/zsh.json +0 -26
- package/data/foldingRange/bash.json +0 -76
- package/data/foldingRange/zsh.json +0 -46
- package/data/formatting/bash.json +0 -88
- package/data/formatting/zsh.json +0 -28
- package/data/hover/bash.json +0 -579
- package/data/hover/zsh.json +0 -96
- package/data/implementation/bash.json +0 -44
- package/data/implementation/zsh.json +0 -41
- package/data/inlayHints/bash.json +0 -207
- package/data/inlayHints/zsh.json +0 -43
- package/data/inlineCompletions/bash.json +0 -155
- package/data/inlineCompletions/zsh.json +0 -17
- package/data/linkedEditingRange/bash.json +0 -25
- package/data/linkedEditingRange/zsh.json +0 -25
- package/data/links/bash.json +0 -56
- package/data/links/zsh.json +0 -15
- package/data/onTypeFormatting/bash.json +0 -68
- package/data/onTypeFormatting/zsh.json +0 -68
- package/data/rangeSemanticTokens/bash.json +0 -90
- package/data/rangeSemanticTokens/zsh.json +0 -76
- package/data/references/bash.json +0 -221
- package/data/references/zsh.json +0 -166
- package/data/rename/bash.json +0 -37
- package/data/rename/zsh.json +0 -31
- package/data/selectionRange/bash.json +0 -35
- package/data/selectionRange/zsh.json +0 -35
- package/data/semanticTokens/bash.json +0 -71
- package/data/semanticTokens/zsh.json +0 -71
- package/data/signatureHelp/bash.json +0 -111
- package/data/signatureHelp/zsh.json +0 -118
- package/data/typeDefinition/bash.json +0 -95
- package/data/typeDefinition/zsh.json +0 -40
|
@@ -0,0 +1,1176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "css",
|
|
3
|
+
"completions": [
|
|
4
|
+
{
|
|
5
|
+
"label": "display",
|
|
6
|
+
"kind": 14,
|
|
7
|
+
"detail": "CSS Property",
|
|
8
|
+
"documentation": { "value": "Specifies the display behavior of an element.\n\nValues: `block`, `inline`, `inline-block`, `flex`, `grid`, `none`, `contents`, `inline-flex`, `inline-grid`, `flow-root`, `table`, `list-item`." },
|
|
9
|
+
"insertText": "display: ${1|block,inline,inline-block,flex,grid,none,contents,inline-flex,inline-grid,flow-root|};",
|
|
10
|
+
"insertTextRules": 4,
|
|
11
|
+
"sortText": "00_display"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"label": "position",
|
|
15
|
+
"kind": 14,
|
|
16
|
+
"detail": "CSS Property",
|
|
17
|
+
"documentation": { "value": "Sets how an element is positioned in a document. Works with `top`, `right`, `bottom`, `left`, and `z-index`.\n\nValues: `static`, `relative`, `absolute`, `fixed`, `sticky`." },
|
|
18
|
+
"insertText": "position: ${1|static,relative,absolute,fixed,sticky|};",
|
|
19
|
+
"insertTextRules": 4,
|
|
20
|
+
"sortText": "00_position"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"label": "flex",
|
|
24
|
+
"kind": 14,
|
|
25
|
+
"detail": "CSS Shorthand Property",
|
|
26
|
+
"documentation": { "value": "Shorthand for `flex-grow`, `flex-shrink`, and `flex-basis`.\n\nSyntax: `flex: <grow> <shrink> <basis>;`\n\nExamples:\n- `flex: 1;` — grow to fill space\n- `flex: 0 0 auto;` — don't grow or shrink\n- `flex: 1 1 0%;` — distribute space evenly" },
|
|
27
|
+
"insertText": "flex: ${1:1} ${2:1} ${3:0%};",
|
|
28
|
+
"insertTextRules": 4,
|
|
29
|
+
"sortText": "00_flex"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"label": "grid-template-columns",
|
|
33
|
+
"kind": 14,
|
|
34
|
+
"detail": "CSS Grid Property",
|
|
35
|
+
"documentation": { "value": "Defines the columns of a grid container.\n\nExamples:\n- `grid-template-columns: 1fr 1fr 1fr;`\n- `grid-template-columns: repeat(3, 1fr);`\n- `grid-template-columns: minmax(200px, 1fr) 3fr;`\n- `grid-template-columns: auto 1fr auto;`" },
|
|
36
|
+
"insertText": "grid-template-columns: ${1:repeat(${2:3}, ${3:1fr})};",
|
|
37
|
+
"insertTextRules": 4,
|
|
38
|
+
"sortText": "00_grid-template-columns"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"label": "grid-template-rows",
|
|
42
|
+
"kind": 14,
|
|
43
|
+
"detail": "CSS Grid Property",
|
|
44
|
+
"documentation": { "value": "Defines the rows of a grid container.\n\nExamples:\n- `grid-template-rows: auto 1fr auto;`\n- `grid-template-rows: repeat(3, minmax(100px, auto));`" },
|
|
45
|
+
"insertText": "grid-template-rows: ${1:auto 1fr auto};",
|
|
46
|
+
"insertTextRules": 4,
|
|
47
|
+
"sortText": "00_grid-template-rows"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"label": "margin",
|
|
51
|
+
"kind": 14,
|
|
52
|
+
"detail": "CSS Shorthand Property",
|
|
53
|
+
"documentation": { "value": "Sets the margin area on all four sides.\n\nSyntax: `margin: <top> <right> <bottom> <left>;`\n\nShorthand patterns:\n- `margin: 10px;` — all sides\n- `margin: 10px 20px;` — vertical | horizontal\n- `margin: 10px 20px 30px;` — top | horizontal | bottom\n- `margin: 10px 20px 30px 40px;` — top | right | bottom | left\n- `margin: 0 auto;` — center horizontally" },
|
|
54
|
+
"insertText": "margin: ${1:0};",
|
|
55
|
+
"insertTextRules": 4,
|
|
56
|
+
"sortText": "00_margin"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"label": "padding",
|
|
60
|
+
"kind": 14,
|
|
61
|
+
"detail": "CSS Shorthand Property",
|
|
62
|
+
"documentation": { "value": "Sets the padding area on all four sides.\n\nSyntax: `padding: <top> <right> <bottom> <left>;`\n\nAccepts length, percentage, or `0`. Does not accept negative values or `auto`." },
|
|
63
|
+
"insertText": "padding: ${1:0};",
|
|
64
|
+
"insertTextRules": 4,
|
|
65
|
+
"sortText": "00_padding"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"label": "color",
|
|
69
|
+
"kind": 14,
|
|
70
|
+
"detail": "CSS Property",
|
|
71
|
+
"documentation": { "value": "Sets the foreground color of text and text decorations.\n\nAccepts: named colors, hex (`#fff`), `rgb()`, `rgba()`, `hsl()`, `hsla()`, `oklch()`, `lab()`, `lch()`, `color()`, `currentColor`, `inherit`, `transparent`." },
|
|
72
|
+
"insertText": "color: ${1:#000};",
|
|
73
|
+
"insertTextRules": 4,
|
|
74
|
+
"sortText": "00_color"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"label": "background",
|
|
78
|
+
"kind": 14,
|
|
79
|
+
"detail": "CSS Shorthand Property",
|
|
80
|
+
"documentation": { "value": "Shorthand for `background-color`, `background-image`, `background-position`, `background-size`, `background-repeat`, `background-origin`, `background-clip`, and `background-attachment`.\n\nExamples:\n- `background: #fff;`\n- `background: url('bg.png') no-repeat center/cover;`\n- `background: linear-gradient(to right, #000, #fff);`" },
|
|
81
|
+
"insertText": "background: ${1:#fff};",
|
|
82
|
+
"insertTextRules": 4,
|
|
83
|
+
"sortText": "00_background"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"label": "border",
|
|
87
|
+
"kind": 14,
|
|
88
|
+
"detail": "CSS Shorthand Property",
|
|
89
|
+
"documentation": { "value": "Shorthand for `border-width`, `border-style`, and `border-color`.\n\nSyntax: `border: <width> <style> <color>;`\n\nStyles: `none`, `solid`, `dashed`, `dotted`, `double`, `groove`, `ridge`, `inset`, `outset`." },
|
|
90
|
+
"insertText": "border: ${1:1px} ${2|solid,dashed,dotted,double,none|} ${3:#000};",
|
|
91
|
+
"insertTextRules": 4,
|
|
92
|
+
"sortText": "00_border"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"label": "font",
|
|
96
|
+
"kind": 14,
|
|
97
|
+
"detail": "CSS Shorthand Property",
|
|
98
|
+
"documentation": { "value": "Shorthand for `font-style`, `font-variant`, `font-weight`, `font-size`/`line-height`, and `font-family`.\n\nSyntax: `font: [style] [variant] [weight] size[/line-height] family;`\n\nExample: `font: italic bold 16px/1.5 'Helvetica Neue', sans-serif;`" },
|
|
99
|
+
"insertText": "font: ${1:16px}/${2:1.5} ${3:sans-serif};",
|
|
100
|
+
"insertTextRules": 4,
|
|
101
|
+
"sortText": "00_font"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "animation",
|
|
105
|
+
"kind": 14,
|
|
106
|
+
"detail": "CSS Shorthand Property",
|
|
107
|
+
"documentation": { "value": "Shorthand for `animation-name`, `animation-duration`, `animation-timing-function`, `animation-delay`, `animation-iteration-count`, `animation-direction`, `animation-fill-mode`, and `animation-play-state`.\n\nSyntax: `animation: name duration timing-function delay iteration-count direction fill-mode;`\n\nExample: `animation: fadeIn 0.3s ease-in-out forwards;`" },
|
|
108
|
+
"insertText": "animation: ${1:name} ${2:0.3s} ${3|ease,ease-in,ease-out,ease-in-out,linear,cubic-bezier()|} ${4:forwards};",
|
|
109
|
+
"insertTextRules": 4,
|
|
110
|
+
"sortText": "00_animation"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"label": "transition",
|
|
114
|
+
"kind": 14,
|
|
115
|
+
"detail": "CSS Shorthand Property",
|
|
116
|
+
"documentation": { "value": "Shorthand for `transition-property`, `transition-duration`, `transition-timing-function`, and `transition-delay`.\n\nSyntax: `transition: property duration timing-function delay;`\n\nExamples:\n- `transition: all 0.3s ease;`\n- `transition: opacity 0.2s, transform 0.3s ease-out;`" },
|
|
117
|
+
"insertText": "transition: ${1:all} ${2:0.3s} ${3|ease,ease-in,ease-out,ease-in-out,linear|};",
|
|
118
|
+
"insertTextRules": 4,
|
|
119
|
+
"sortText": "00_transition"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"label": "transform",
|
|
123
|
+
"kind": 14,
|
|
124
|
+
"detail": "CSS Property",
|
|
125
|
+
"documentation": { "value": "Applies a 2D or 3D transformation to an element.\n\nFunctions: `translate()`, `translateX()`, `translateY()`, `rotate()`, `scale()`, `scaleX()`, `scaleY()`, `skew()`, `skewX()`, `skewY()`, `matrix()`, `perspective()`, `translate3d()`, `rotate3d()`, `scale3d()`." },
|
|
126
|
+
"insertText": "transform: ${1|translate(),translateX(),translateY(),rotate(),scale(),skew(),matrix(),perspective()|};",
|
|
127
|
+
"insertTextRules": 4,
|
|
128
|
+
"sortText": "00_transform"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"label": "z-index",
|
|
132
|
+
"kind": 14,
|
|
133
|
+
"detail": "CSS Property",
|
|
134
|
+
"documentation": { "value": "Sets the z-order of a positioned element and its descendants. Only works on elements with `position` other than `static`.\n\nValues: integer (positive or negative), `auto`." },
|
|
135
|
+
"insertText": "z-index: ${1:1};",
|
|
136
|
+
"insertTextRules": 4,
|
|
137
|
+
"sortText": "00_z-index"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"label": "overflow",
|
|
141
|
+
"kind": 14,
|
|
142
|
+
"detail": "CSS Shorthand Property",
|
|
143
|
+
"documentation": { "value": "Sets what to do when content overflows the element's box.\n\nValues: `visible`, `hidden`, `clip`, `scroll`, `auto`.\n\nAlso: `overflow-x`, `overflow-y` for individual axis control." },
|
|
144
|
+
"insertText": "overflow: ${1|visible,hidden,clip,scroll,auto|};",
|
|
145
|
+
"insertTextRules": 4,
|
|
146
|
+
"sortText": "00_overflow"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"label": "cursor",
|
|
150
|
+
"kind": 14,
|
|
151
|
+
"detail": "CSS Property",
|
|
152
|
+
"documentation": { "value": "Sets the type of mouse cursor when hovering over an element.\n\nCommon values: `pointer`, `default`, `text`, `move`, `not-allowed`, `grab`, `grabbing`, `crosshair`, `wait`, `progress`, `help`, `zoom-in`, `zoom-out`, `none`, `url()` for custom cursors." },
|
|
153
|
+
"insertText": "cursor: ${1|pointer,default,text,move,not-allowed,grab,grabbing,crosshair,wait,help,none|};",
|
|
154
|
+
"insertTextRules": 4,
|
|
155
|
+
"sortText": "00_cursor"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"label": "opacity",
|
|
159
|
+
"kind": 14,
|
|
160
|
+
"detail": "CSS Property",
|
|
161
|
+
"documentation": { "value": "Sets the opacity level for an element. Affects the entire element including contents.\n\nRange: `0` (fully transparent) to `1` (fully opaque).\n\nNote: Unlike `visibility: hidden`, opacity `0` still occupies space and receives events." },
|
|
162
|
+
"insertText": "opacity: ${1:1};",
|
|
163
|
+
"insertTextRules": 4,
|
|
164
|
+
"sortText": "00_opacity"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"label": "box-sizing",
|
|
168
|
+
"kind": 14,
|
|
169
|
+
"detail": "CSS Property",
|
|
170
|
+
"documentation": { "value": "Defines how the width and height of an element are calculated.\n\n- `content-box` (default): Width/height only include content\n- `border-box`: Width/height include padding and border\n\nBest practice: `*, *::before, *::after { box-sizing: border-box; }`" },
|
|
171
|
+
"insertText": "box-sizing: ${1|border-box,content-box|};",
|
|
172
|
+
"insertTextRules": 4,
|
|
173
|
+
"sortText": "00_box-sizing"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"label": ":hover",
|
|
177
|
+
"kind": 14,
|
|
178
|
+
"detail": "CSS Pseudo-class",
|
|
179
|
+
"documentation": { "value": "Matches when the user interacts with an element via a pointing device (mouse hover).\n\nSpecificity: adds (0, 1, 0) to the selector.\n\nExample: `a:hover { color: blue; text-decoration: underline; }`" },
|
|
180
|
+
"insertText": ":hover {\n\t$0\n}",
|
|
181
|
+
"insertTextRules": 4,
|
|
182
|
+
"sortText": "01_hover"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"label": ":focus",
|
|
186
|
+
"kind": 14,
|
|
187
|
+
"detail": "CSS Pseudo-class",
|
|
188
|
+
"documentation": { "value": "Matches when an element has received focus (keyboard tab, click, or programmatic focus).\n\nBest practice: Always provide visible `:focus` styles for accessibility. Consider `:focus-visible` for keyboard-only focus." },
|
|
189
|
+
"insertText": ":focus {\n\t$0\n}",
|
|
190
|
+
"insertTextRules": 4,
|
|
191
|
+
"sortText": "01_focus"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"label": "::before",
|
|
195
|
+
"kind": 14,
|
|
196
|
+
"detail": "CSS Pseudo-element",
|
|
197
|
+
"documentation": { "value": "Creates a pseudo-element as the first child of the selected element. Requires `content` property.\n\nExample:\n```css\n.icon::before {\n content: '';\n display: inline-block;\n width: 16px;\n height: 16px;\n}\n```" },
|
|
198
|
+
"insertText": "::before {\n\tcontent: '${1}';\n\t$0\n}",
|
|
199
|
+
"insertTextRules": 4,
|
|
200
|
+
"sortText": "01_before"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"label": "::after",
|
|
204
|
+
"kind": 14,
|
|
205
|
+
"detail": "CSS Pseudo-element",
|
|
206
|
+
"documentation": { "value": "Creates a pseudo-element as the last child of the selected element. Requires `content` property.\n\nCommonly used for decorative elements, clearfixes, and overlays." },
|
|
207
|
+
"insertText": "::after {\n\tcontent: '${1}';\n\t$0\n}",
|
|
208
|
+
"insertTextRules": 4,
|
|
209
|
+
"sortText": "01_after"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"label": ":nth-child()",
|
|
213
|
+
"kind": 14,
|
|
214
|
+
"detail": "CSS Pseudo-class",
|
|
215
|
+
"documentation": { "value": "Matches elements based on their position among siblings.\n\nSyntax: `:nth-child(An+B [of S]?)`\n\nExamples:\n- `:nth-child(2)` — second child\n- `:nth-child(odd)` / `:nth-child(2n+1)` — odd children\n- `:nth-child(even)` / `:nth-child(2n)` — even children\n- `:nth-child(3n)` — every third child\n- `:nth-child(-n+3)` — first three children" },
|
|
216
|
+
"insertText": ":nth-child(${1:2n+1})",
|
|
217
|
+
"insertTextRules": 4,
|
|
218
|
+
"sortText": "01_nth-child"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"label": ":first-child",
|
|
222
|
+
"kind": 14,
|
|
223
|
+
"detail": "CSS Pseudo-class",
|
|
224
|
+
"documentation": { "value": "Matches the first child element. Equivalent to `:nth-child(1)`.\n\nExample: `li:first-child { font-weight: bold; }`" },
|
|
225
|
+
"insertText": ":first-child",
|
|
226
|
+
"insertTextRules": 0,
|
|
227
|
+
"sortText": "01_first-child"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"label": "@media",
|
|
231
|
+
"kind": 14,
|
|
232
|
+
"detail": "CSS At-Rule",
|
|
233
|
+
"documentation": { "value": "Applies styles conditionally based on media queries.\n\nMedia types: `all`, `screen`, `print`\nMedia features: `width`, `height`, `aspect-ratio`, `orientation`, `resolution`, `prefers-color-scheme`, `prefers-reduced-motion`, `hover`, `pointer`.\n\nLogical operators: `and`, `not`, `only`, `,` (or)." },
|
|
234
|
+
"insertText": "@media ${1|(max-width: 768px),(min-width: 768px),(prefers-color-scheme: dark),(prefers-reduced-motion: reduce)|} {\n\t$0\n}",
|
|
235
|
+
"insertTextRules": 4,
|
|
236
|
+
"sortText": "02_media"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"label": "@keyframes",
|
|
240
|
+
"kind": 14,
|
|
241
|
+
"detail": "CSS At-Rule",
|
|
242
|
+
"documentation": { "value": "Defines the keyframes for an animation sequence.\n\nSyntax:\n```css\n@keyframes name {\n from { /* start state */ }\n to { /* end state */ }\n}\n```\nOr with percentage stops:\n```css\n@keyframes name {\n 0% { opacity: 0; }\n 50% { opacity: 0.5; }\n 100% { opacity: 1; }\n}\n```" },
|
|
243
|
+
"insertText": "@keyframes ${1:animationName} {\n\tfrom {\n\t\t${2:opacity: 0;}\n\t}\n\tto {\n\t\t${3:opacity: 1;}\n\t}\n}",
|
|
244
|
+
"insertTextRules": 4,
|
|
245
|
+
"sortText": "02_keyframes"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"label": "@import",
|
|
249
|
+
"kind": 14,
|
|
250
|
+
"detail": "CSS At-Rule",
|
|
251
|
+
"documentation": { "value": "Imports a stylesheet into the current stylesheet. Must appear before all other rules except `@charset` and `@layer`.\n\nSyntax:\n- `@import url('file.css');`\n- `@import url('print.css') print;`\n- `@import url('mobile.css') screen and (max-width: 768px);`\n- `@import 'file.css' layer(name);`" },
|
|
252
|
+
"insertText": "@import url('${1:file.css}');",
|
|
253
|
+
"insertTextRules": 4,
|
|
254
|
+
"sortText": "02_import"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"label": "@font-face",
|
|
258
|
+
"kind": 14,
|
|
259
|
+
"detail": "CSS At-Rule",
|
|
260
|
+
"documentation": { "value": "Defines a custom font to be used in the document.\n\nDescriptors: `font-family`, `src`, `font-weight`, `font-style`, `font-display`, `unicode-range`, `font-stretch`, `font-variant`, `font-feature-settings`.\n\n`font-display` values: `auto`, `block`, `swap`, `fallback`, `optional`." },
|
|
261
|
+
"insertText": "@font-face {\n\tfont-family: '${1:FontName}';\n\tsrc: url('${2:font.woff2}') format('woff2'),\n\t url('${3:font.woff}') format('woff');\n\tfont-weight: ${4|normal,bold,100,200,300,400,500,600,700,800,900|};\n\tfont-style: ${5|normal,italic|};\n\tfont-display: ${6|swap,block,fallback,optional|};\n}",
|
|
262
|
+
"insertTextRules": 4,
|
|
263
|
+
"sortText": "02_font-face"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"label": "@supports",
|
|
267
|
+
"kind": 14,
|
|
268
|
+
"detail": "CSS At-Rule",
|
|
269
|
+
"documentation": { "value": "Feature query — applies styles only if the browser supports a given CSS feature.\n\nExamples:\n- `@supports (display: grid) { ... }`\n- `@supports not (gap: 1rem) { ... }`\n- `@supports (display: grid) and (gap: 1rem) { ... }`\n- `@supports selector(:has()) { ... }`" },
|
|
270
|
+
"insertText": "@supports (${1:display: grid}) {\n\t$0\n}",
|
|
271
|
+
"insertTextRules": 4,
|
|
272
|
+
"sortText": "02_supports"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"label": "@layer",
|
|
276
|
+
"kind": 14,
|
|
277
|
+
"detail": "CSS At-Rule (Cascade Layers)",
|
|
278
|
+
"documentation": { "value": "Declares cascade layers to control the order of specificity.\n\nSyntax:\n- `@layer name;` — declare layer order\n- `@layer name { ... }` — assign rules to layer\n- `@layer name1, name2, name3;` — define layer order\n- `@import url('lib.css') layer(lib);`\n\nLayers declared earlier have lower priority." },
|
|
279
|
+
"insertText": "@layer ${1:layerName} {\n\t$0\n}",
|
|
280
|
+
"insertTextRules": 4,
|
|
281
|
+
"sortText": "02_layer"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"label": "@container",
|
|
285
|
+
"kind": 14,
|
|
286
|
+
"detail": "CSS At-Rule (Container Queries)",
|
|
287
|
+
"documentation": { "value": "Applies styles based on the size of a containing element (not the viewport).\n\nRequires `container-type` on the parent:\n```css\n.parent { container-type: inline-size; }\n@container (min-width: 400px) { .child { ... } }\n```\nNamed containers: `container-name: sidebar;` + `@container sidebar (...) { }`" },
|
|
288
|
+
"insertText": "@container ${1:(min-width: ${2:400px})} {\n\t$0\n}",
|
|
289
|
+
"insertTextRules": 4,
|
|
290
|
+
"sortText": "02_container"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"label": "var()",
|
|
294
|
+
"kind": 14,
|
|
295
|
+
"detail": "CSS Function — Custom Properties",
|
|
296
|
+
"documentation": { "value": "Inserts the value of a CSS custom property.\n\nSyntax: `var(--property-name, fallback-value)`\n\nExample:\n```css\n:root { --primary: #3490dc; }\n.btn { color: var(--primary, blue); }\n```\nFallback can itself use `var()`: `var(--a, var(--b, #000))`." },
|
|
297
|
+
"insertText": "var(--${1:property}${2:, ${3:fallback}})",
|
|
298
|
+
"insertTextRules": 4,
|
|
299
|
+
"sortText": "00_var"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"label": "Flexbox Center",
|
|
303
|
+
"kind": 15,
|
|
304
|
+
"detail": "Snippet — Center element with Flexbox",
|
|
305
|
+
"documentation": { "value": "Centers child elements both horizontally and vertically using Flexbox.\n\nThis is the most common centering technique in modern CSS." },
|
|
306
|
+
"insertText": "display: flex;\njustify-content: center;\nalign-items: center;",
|
|
307
|
+
"insertTextRules": 4,
|
|
308
|
+
"sortText": "03_flexbox-center"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"label": "Grid Layout",
|
|
312
|
+
"kind": 15,
|
|
313
|
+
"detail": "Snippet — Responsive grid layout",
|
|
314
|
+
"documentation": { "value": "Creates a responsive grid layout using `auto-fill` and `minmax()` for fluid column sizing without media queries." },
|
|
315
|
+
"insertText": "display: grid;\ngrid-template-columns: repeat(auto-fill, minmax(${1:250px}, 1fr));\ngap: ${2:1rem};",
|
|
316
|
+
"insertTextRules": 4,
|
|
317
|
+
"sortText": "03_grid-layout"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"label": "Media Query Mobile",
|
|
321
|
+
"kind": 15,
|
|
322
|
+
"detail": "Snippet — Mobile-first breakpoint",
|
|
323
|
+
"documentation": { "value": "Mobile-first media query for tablet and above (768px). Common breakpoints:\n- 480px: Mobile landscape\n- 768px: Tablet\n- 1024px: Desktop\n- 1280px: Large desktop" },
|
|
324
|
+
"insertText": "@media (min-width: ${1|480px,768px,1024px,1280px|}) {\n\t$0\n}",
|
|
325
|
+
"insertTextRules": 4,
|
|
326
|
+
"sortText": "03_media-mobile"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"label": "Custom Property Definition",
|
|
330
|
+
"kind": 15,
|
|
331
|
+
"detail": "Snippet — CSS Custom Property on :root",
|
|
332
|
+
"documentation": { "value": "Defines a CSS custom property (CSS variable) on the `:root` pseudo-class for global usage.\n\nCustom properties are inherited and can be overridden in nested scopes." },
|
|
333
|
+
"insertText": ":root {\n\t--${1:property-name}: ${2:value};\n}",
|
|
334
|
+
"insertTextRules": 4,
|
|
335
|
+
"sortText": "03_custom-property"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"label": "Dark Mode Toggle",
|
|
339
|
+
"kind": 15,
|
|
340
|
+
"detail": "Snippet — prefers-color-scheme dark",
|
|
341
|
+
"documentation": { "value": "Uses the `prefers-color-scheme` media feature to apply dark mode styles based on user system preference." },
|
|
342
|
+
"insertText": "@media (prefers-color-scheme: dark) {\n\t:root {\n\t\t--bg: ${1:#1a1a2e};\n\t\t--text: ${2:#e0e0e0};\n\t}\n}",
|
|
343
|
+
"insertTextRules": 4,
|
|
344
|
+
"sortText": "03_dark-mode"
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"label": "calc()",
|
|
348
|
+
"kind": 14,
|
|
349
|
+
"detail": "CSS Function",
|
|
350
|
+
"documentation": { "value": "Performs calculations to determine CSS property values. Supports `+`, `-`, `*`, `/` and can mix units.\n\nExamples:\n- `width: calc(100% - 2rem);`\n- `font-size: calc(1rem + 0.5vw);`\n- `height: calc(100vh - var(--header-height));`" },
|
|
351
|
+
"insertText": "calc(${1:100%} ${2|-,+|} ${3:2rem})",
|
|
352
|
+
"insertTextRules": 4,
|
|
353
|
+
"sortText": "00_calc"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"label": "clamp()",
|
|
357
|
+
"kind": 14,
|
|
358
|
+
"detail": "CSS Function",
|
|
359
|
+
"documentation": { "value": "Clamps a value between a minimum and maximum.\n\nSyntax: `clamp(MIN, VAL, MAX)`\n\nExample: `font-size: clamp(1rem, 2.5vw, 2rem);` — responsive font that never goes below 1rem or above 2rem." },
|
|
360
|
+
"insertText": "clamp(${1:1rem}, ${2:2.5vw}, ${3:2rem})",
|
|
361
|
+
"insertTextRules": 4,
|
|
362
|
+
"sortText": "00_clamp"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"label": "gap",
|
|
366
|
+
"kind": 14,
|
|
367
|
+
"detail": "CSS Property (Flexbox/Grid)",
|
|
368
|
+
"documentation": { "value": "Sets the gap (gutter) between rows and columns in flex and grid layouts.\n\nShorthand for `row-gap` and `column-gap`.\n\n- `gap: 1rem;` — uniform gap\n- `gap: 1rem 2rem;` — row gap | column gap" },
|
|
369
|
+
"insertText": "gap: ${1:1rem};",
|
|
370
|
+
"insertTextRules": 4,
|
|
371
|
+
"sortText": "00_gap"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"label": "Visually Hidden",
|
|
375
|
+
"kind": 15,
|
|
376
|
+
"detail": "Snippet — Screen reader only",
|
|
377
|
+
"documentation": { "value": "Hides an element visually while keeping it accessible to screen readers. Preferred over `display: none` for accessibility." },
|
|
378
|
+
"insertText": "position: absolute;\nwidth: 1px;\nheight: 1px;\npadding: 0;\nmargin: -1px;\noverflow: hidden;\nclip: rect(0, 0, 0, 0);\nwhite-space: nowrap;\nborder-width: 0;",
|
|
379
|
+
"insertTextRules": 4,
|
|
380
|
+
"sortText": "03_visually-hidden"
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
{
|
|
384
|
+
"label": "width",
|
|
385
|
+
"kind": 14,
|
|
386
|
+
"detail": "CSS Property",
|
|
387
|
+
"documentation": { "value": "Sets the width of an element's content area.\n\nValues: `auto`, `<length>`, `<percentage>`, `min-content`, `max-content`, `fit-content()`." },
|
|
388
|
+
"insertText": "width: ${1:100%};",
|
|
389
|
+
"insertTextRules": 4,
|
|
390
|
+
"sortText": "00_width"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"label": "height",
|
|
394
|
+
"kind": 14,
|
|
395
|
+
"detail": "CSS Property",
|
|
396
|
+
"documentation": { "value": "Sets the height of an element's content area.\n\nValues: `auto`, `<length>`, `<percentage>`, `min-content`, `max-content`, `fit-content()`, `100vh`, `100dvh`." },
|
|
397
|
+
"insertText": "height: ${1:auto};",
|
|
398
|
+
"insertTextRules": 4,
|
|
399
|
+
"sortText": "00_height"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"label": "min-width",
|
|
403
|
+
"kind": 14,
|
|
404
|
+
"detail": "CSS Property",
|
|
405
|
+
"documentation": { "value": "Sets the minimum width of an element. Overrides `width` and `max-width` when they result in a smaller value." },
|
|
406
|
+
"insertText": "min-width: ${1:0};",
|
|
407
|
+
"insertTextRules": 4,
|
|
408
|
+
"sortText": "00_min-width"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"label": "max-width",
|
|
412
|
+
"kind": 14,
|
|
413
|
+
"detail": "CSS Property",
|
|
414
|
+
"documentation": { "value": "Sets the maximum width of an element. Commonly used for centered layouts: `max-width: 1200px; margin: 0 auto;`." },
|
|
415
|
+
"insertText": "max-width: ${1:1200px};",
|
|
416
|
+
"insertTextRules": 4,
|
|
417
|
+
"sortText": "00_max-width"
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
"label": "min-height",
|
|
421
|
+
"kind": 14,
|
|
422
|
+
"detail": "CSS Property",
|
|
423
|
+
"documentation": { "value": "Sets the minimum height. Common pattern: `min-height: 100vh;` for full-page layouts." },
|
|
424
|
+
"insertText": "min-height: ${1:100vh};",
|
|
425
|
+
"insertTextRules": 4,
|
|
426
|
+
"sortText": "00_min-height"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"label": "max-height",
|
|
430
|
+
"kind": 14,
|
|
431
|
+
"detail": "CSS Property",
|
|
432
|
+
"documentation": { "value": "Sets the maximum height. Commonly used with `overflow: auto` for scrollable regions." },
|
|
433
|
+
"insertText": "max-height: ${1:100%};",
|
|
434
|
+
"insertTextRules": 4,
|
|
435
|
+
"sortText": "00_max-height"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"label": "top",
|
|
439
|
+
"kind": 14,
|
|
440
|
+
"detail": "CSS Property",
|
|
441
|
+
"documentation": { "value": "Specifies the vertical position of a positioned element from the top edge." },
|
|
442
|
+
"insertText": "top: ${1:0};",
|
|
443
|
+
"insertTextRules": 4,
|
|
444
|
+
"sortText": "00_top"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"label": "right",
|
|
448
|
+
"kind": 14,
|
|
449
|
+
"detail": "CSS Property",
|
|
450
|
+
"documentation": { "value": "Specifies the horizontal position from the right edge of a positioned element's containing block." },
|
|
451
|
+
"insertText": "right: ${1:0};",
|
|
452
|
+
"insertTextRules": 4,
|
|
453
|
+
"sortText": "00_right"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"label": "bottom",
|
|
457
|
+
"kind": 14,
|
|
458
|
+
"detail": "CSS Property",
|
|
459
|
+
"documentation": { "value": "Specifies the vertical position from the bottom edge of a positioned element's containing block." },
|
|
460
|
+
"insertText": "bottom: ${1:0};",
|
|
461
|
+
"insertTextRules": 4,
|
|
462
|
+
"sortText": "00_bottom"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"label": "left",
|
|
466
|
+
"kind": 14,
|
|
467
|
+
"detail": "CSS Property",
|
|
468
|
+
"documentation": { "value": "Specifies the horizontal position from the left edge of a positioned element's containing block." },
|
|
469
|
+
"insertText": "left: ${1:0};",
|
|
470
|
+
"insertTextRules": 4,
|
|
471
|
+
"sortText": "00_left"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"label": "inset",
|
|
475
|
+
"kind": 14,
|
|
476
|
+
"detail": "CSS Shorthand Property",
|
|
477
|
+
"documentation": { "value": "Shorthand for `top`, `right`, `bottom`, `left`.\n\n`inset: 0;` fills the containing block completely." },
|
|
478
|
+
"insertText": "inset: ${1:0};",
|
|
479
|
+
"insertTextRules": 4,
|
|
480
|
+
"sortText": "00_inset"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"label": "flex-direction",
|
|
484
|
+
"kind": 14,
|
|
485
|
+
"detail": "CSS Flexbox Property",
|
|
486
|
+
"documentation": { "value": "Defines the main axis direction for a flex container.\n\nValues: `row`, `row-reverse`, `column`, `column-reverse`." },
|
|
487
|
+
"insertText": "flex-direction: ${1|row,row-reverse,column,column-reverse|};",
|
|
488
|
+
"insertTextRules": 4,
|
|
489
|
+
"sortText": "00_flex-direction"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"label": "flex-wrap",
|
|
493
|
+
"kind": 14,
|
|
494
|
+
"detail": "CSS Flexbox Property",
|
|
495
|
+
"documentation": { "value": "Controls whether flex items wrap onto multiple lines.\n\nValues: `nowrap`, `wrap`, `wrap-reverse`." },
|
|
496
|
+
"insertText": "flex-wrap: ${1|nowrap,wrap,wrap-reverse|};",
|
|
497
|
+
"insertTextRules": 4,
|
|
498
|
+
"sortText": "00_flex-wrap"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"label": "justify-content",
|
|
502
|
+
"kind": 14,
|
|
503
|
+
"detail": "CSS Flexbox/Grid Property",
|
|
504
|
+
"documentation": { "value": "Distributes space along the main axis.\n\nValues: `flex-start`, `flex-end`, `center`, `space-between`, `space-around`, `space-evenly`." },
|
|
505
|
+
"insertText": "justify-content: ${1|flex-start,flex-end,center,space-between,space-around,space-evenly|};",
|
|
506
|
+
"insertTextRules": 4,
|
|
507
|
+
"sortText": "00_justify-content"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"label": "align-items",
|
|
511
|
+
"kind": 14,
|
|
512
|
+
"detail": "CSS Flexbox/Grid Property",
|
|
513
|
+
"documentation": { "value": "Aligns flex/grid items along the cross axis.\n\nValues: `stretch`, `flex-start`, `flex-end`, `center`, `baseline`." },
|
|
514
|
+
"insertText": "align-items: ${1|stretch,flex-start,flex-end,center,baseline|};",
|
|
515
|
+
"insertTextRules": 4,
|
|
516
|
+
"sortText": "00_align-items"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"label": "align-content",
|
|
520
|
+
"kind": 14,
|
|
521
|
+
"detail": "CSS Flexbox/Grid Property",
|
|
522
|
+
"documentation": { "value": "Distributes space between flex/grid lines on the cross axis. Only applies with multiple lines." },
|
|
523
|
+
"insertText": "align-content: ${1|stretch,flex-start,flex-end,center,space-between,space-around|};",
|
|
524
|
+
"insertTextRules": 4,
|
|
525
|
+
"sortText": "00_align-content"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"label": "align-self",
|
|
529
|
+
"kind": 14,
|
|
530
|
+
"detail": "CSS Flexbox/Grid Property",
|
|
531
|
+
"documentation": { "value": "Overrides `align-items` for this specific flex/grid item on the cross axis." },
|
|
532
|
+
"insertText": "align-self: ${1|auto,flex-start,flex-end,center,stretch,baseline|};",
|
|
533
|
+
"insertTextRules": 4,
|
|
534
|
+
"sortText": "00_align-self"
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"label": "flex-grow",
|
|
538
|
+
"kind": 14,
|
|
539
|
+
"detail": "CSS Flexbox Property",
|
|
540
|
+
"documentation": { "value": "Specifies how much a flex item should grow relative to siblings. Default: `0`." },
|
|
541
|
+
"insertText": "flex-grow: ${1:1};",
|
|
542
|
+
"insertTextRules": 4,
|
|
543
|
+
"sortText": "00_flex-grow"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"label": "flex-shrink",
|
|
547
|
+
"kind": 14,
|
|
548
|
+
"detail": "CSS Flexbox Property",
|
|
549
|
+
"documentation": { "value": "Specifies how much a flex item should shrink. Default: `1`. Set `0` to prevent shrinking." },
|
|
550
|
+
"insertText": "flex-shrink: ${1:0};",
|
|
551
|
+
"insertTextRules": 4,
|
|
552
|
+
"sortText": "00_flex-shrink"
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"label": "flex-basis",
|
|
556
|
+
"kind": 14,
|
|
557
|
+
"detail": "CSS Flexbox Property",
|
|
558
|
+
"documentation": { "value": "Sets the initial main size of a flex item before space distribution." },
|
|
559
|
+
"insertText": "flex-basis: ${1:auto};",
|
|
560
|
+
"insertTextRules": 4,
|
|
561
|
+
"sortText": "00_flex-basis"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"label": "order",
|
|
565
|
+
"kind": 14,
|
|
566
|
+
"detail": "CSS Flexbox/Grid Property",
|
|
567
|
+
"documentation": { "value": "Sets the visual order of a flex/grid item. Default: `0`. Negative values move earlier." },
|
|
568
|
+
"insertText": "order: ${1:0};",
|
|
569
|
+
"insertTextRules": 4,
|
|
570
|
+
"sortText": "00_order"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"label": "grid-area",
|
|
574
|
+
"kind": 14,
|
|
575
|
+
"detail": "CSS Grid Property",
|
|
576
|
+
"documentation": { "value": "Shorthand for `grid-row-start` / `grid-column-start` / `grid-row-end` / `grid-column-end`.\n\nAlso used with `grid-template-areas` for named placement." },
|
|
577
|
+
"insertText": "grid-area: ${1:name};",
|
|
578
|
+
"insertTextRules": 4,
|
|
579
|
+
"sortText": "00_grid-area"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"label": "grid-template-areas",
|
|
583
|
+
"kind": 14,
|
|
584
|
+
"detail": "CSS Grid Property",
|
|
585
|
+
"documentation": { "value": "Defines named grid areas using ASCII art syntax.\n\nExample:\n```css\ngrid-template-areas:\n 'header header'\n 'sidebar main'\n 'footer footer';\n```" },
|
|
586
|
+
"insertText": "grid-template-areas:\n\t'${1:header} ${2:header}'\n\t'${3:sidebar} ${4:main}'\n\t'${5:footer} ${6:footer}';",
|
|
587
|
+
"insertTextRules": 4,
|
|
588
|
+
"sortText": "00_grid-template-areas"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"label": "grid-auto-flow",
|
|
592
|
+
"kind": 14,
|
|
593
|
+
"detail": "CSS Grid Property",
|
|
594
|
+
"documentation": { "value": "Controls how auto-placed items flow into the grid.\n\nValues: `row`, `column`, `dense`, `row dense`, `column dense`." },
|
|
595
|
+
"insertText": "grid-auto-flow: ${1|row,column,dense,row dense,column dense|};",
|
|
596
|
+
"insertTextRules": 4,
|
|
597
|
+
"sortText": "00_grid-auto-flow"
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"label": "place-items",
|
|
601
|
+
"kind": 14,
|
|
602
|
+
"detail": "CSS Grid Shorthand",
|
|
603
|
+
"documentation": { "value": "Shorthand for `align-items` + `justify-items`. `place-items: center;` centers grid items." },
|
|
604
|
+
"insertText": "place-items: ${1:center};",
|
|
605
|
+
"insertTextRules": 4,
|
|
606
|
+
"sortText": "00_place-items"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"label": "place-content",
|
|
610
|
+
"kind": 14,
|
|
611
|
+
"detail": "CSS Grid Shorthand",
|
|
612
|
+
"documentation": { "value": "Shorthand for `align-content` + `justify-content`." },
|
|
613
|
+
"insertText": "place-content: ${1:center};",
|
|
614
|
+
"insertTextRules": 4,
|
|
615
|
+
"sortText": "00_place-content"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"label": "font-size",
|
|
619
|
+
"kind": 14,
|
|
620
|
+
"detail": "CSS Property",
|
|
621
|
+
"documentation": { "value": "Sets the size of the font.\n\nUnits: `px`, `em`, `rem`, `%`, `vw`. Fluid: `clamp(1rem, 2.5vw, 2rem)`." },
|
|
622
|
+
"insertText": "font-size: ${1:1rem};",
|
|
623
|
+
"insertTextRules": 4,
|
|
624
|
+
"sortText": "00_font-size"
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"label": "font-weight",
|
|
628
|
+
"kind": 14,
|
|
629
|
+
"detail": "CSS Property",
|
|
630
|
+
"documentation": { "value": "Sets the weight (boldness) of the font.\n\n100=Thin, 300=Light, 400=Normal, 500=Medium, 700=Bold, 900=Black." },
|
|
631
|
+
"insertText": "font-weight: ${1|normal,bold,100,200,300,400,500,600,700,800,900|};",
|
|
632
|
+
"insertTextRules": 4,
|
|
633
|
+
"sortText": "00_font-weight"
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"label": "font-family",
|
|
637
|
+
"kind": 14,
|
|
638
|
+
"detail": "CSS Property",
|
|
639
|
+
"documentation": { "value": "Sets the font family. Always end with a generic fallback.\n\nGenerics: `serif`, `sans-serif`, `monospace`, `system-ui`." },
|
|
640
|
+
"insertText": "font-family: ${1:'Inter'}, ${2:system-ui}, ${3:sans-serif};",
|
|
641
|
+
"insertTextRules": 4,
|
|
642
|
+
"sortText": "00_font-family"
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
"label": "line-height",
|
|
646
|
+
"kind": 14,
|
|
647
|
+
"detail": "CSS Property",
|
|
648
|
+
"documentation": { "value": "Sets the line height. Unitless values (1.5) are recommended as they scale with font-size. WCAG recommends 1.5+ for body text." },
|
|
649
|
+
"insertText": "line-height: ${1:1.5};",
|
|
650
|
+
"insertTextRules": 4,
|
|
651
|
+
"sortText": "00_line-height"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"label": "letter-spacing",
|
|
655
|
+
"kind": 14,
|
|
656
|
+
"detail": "CSS Property",
|
|
657
|
+
"documentation": { "value": "Sets spacing between characters. Negative values tighten text. Useful for headings (-0.025em) or uppercase text (0.05em)." },
|
|
658
|
+
"insertText": "letter-spacing: ${1:0.025em};",
|
|
659
|
+
"insertTextRules": 4,
|
|
660
|
+
"sortText": "00_letter-spacing"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
"label": "text-align",
|
|
664
|
+
"kind": 14,
|
|
665
|
+
"detail": "CSS Property",
|
|
666
|
+
"documentation": { "value": "Aligns inline content within a block.\n\nValues: `left`, `right`, `center`, `justify`, `start`, `end`." },
|
|
667
|
+
"insertText": "text-align: ${1|left,center,right,justify,start,end|};",
|
|
668
|
+
"insertTextRules": 4,
|
|
669
|
+
"sortText": "00_text-align"
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"label": "text-decoration",
|
|
673
|
+
"kind": 14,
|
|
674
|
+
"detail": "CSS Shorthand Property",
|
|
675
|
+
"documentation": { "value": "Shorthand for text decoration line, style, color, and thickness.\n\nLines: `none`, `underline`, `overline`, `line-through`.\nStyles: `solid`, `double`, `dotted`, `dashed`, `wavy`." },
|
|
676
|
+
"insertText": "text-decoration: ${1|none,underline,overline,line-through|};",
|
|
677
|
+
"insertTextRules": 4,
|
|
678
|
+
"sortText": "00_text-decoration"
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"label": "text-transform",
|
|
682
|
+
"kind": 14,
|
|
683
|
+
"detail": "CSS Property",
|
|
684
|
+
"documentation": { "value": "Controls capitalization of text.\n\nValues: `none`, `capitalize`, `uppercase`, `lowercase`." },
|
|
685
|
+
"insertText": "text-transform: ${1|none,capitalize,uppercase,lowercase|};",
|
|
686
|
+
"insertTextRules": 4,
|
|
687
|
+
"sortText": "00_text-transform"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"label": "text-overflow",
|
|
691
|
+
"kind": 14,
|
|
692
|
+
"detail": "CSS Property",
|
|
693
|
+
"documentation": { "value": "Specifies how overflowed text is signaled. Values: `clip`, `ellipsis`.\n\nRequires `overflow: hidden` and `white-space: nowrap`." },
|
|
694
|
+
"insertText": "text-overflow: ${1|clip,ellipsis|};",
|
|
695
|
+
"insertTextRules": 4,
|
|
696
|
+
"sortText": "00_text-overflow"
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"label": "white-space",
|
|
700
|
+
"kind": 14,
|
|
701
|
+
"detail": "CSS Property",
|
|
702
|
+
"documentation": { "value": "Controls how whitespace and newlines are handled.\n\nValues: `normal`, `nowrap`, `pre`, `pre-wrap`, `pre-line`, `break-spaces`." },
|
|
703
|
+
"insertText": "white-space: ${1|normal,nowrap,pre,pre-wrap,pre-line|};",
|
|
704
|
+
"insertTextRules": 4,
|
|
705
|
+
"sortText": "00_white-space"
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"label": "word-break",
|
|
709
|
+
"kind": 14,
|
|
710
|
+
"detail": "CSS Property",
|
|
711
|
+
"documentation": { "value": "Controls line breaking rules within words.\n\nValues: `normal`, `break-all`, `keep-all`, `break-word`." },
|
|
712
|
+
"insertText": "word-break: ${1|normal,break-all,keep-all|};",
|
|
713
|
+
"insertTextRules": 4,
|
|
714
|
+
"sortText": "00_word-break"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"label": "overflow-wrap",
|
|
718
|
+
"kind": 14,
|
|
719
|
+
"detail": "CSS Property",
|
|
720
|
+
"documentation": { "value": "Allows unbreakable strings to be broken to prevent overflow.\n\nValues: `normal`, `break-word`, `anywhere`." },
|
|
721
|
+
"insertText": "overflow-wrap: ${1|normal,break-word,anywhere|};",
|
|
722
|
+
"insertTextRules": 4,
|
|
723
|
+
"sortText": "00_overflow-wrap"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"label": "background-color",
|
|
727
|
+
"kind": 14,
|
|
728
|
+
"detail": "CSS Property",
|
|
729
|
+
"documentation": { "value": "Sets the background color of an element. Supports all CSS color formats including alpha." },
|
|
730
|
+
"insertText": "background-color: ${1:#fff};",
|
|
731
|
+
"insertTextRules": 4,
|
|
732
|
+
"sortText": "00_background-color"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"label": "background-image",
|
|
736
|
+
"kind": 14,
|
|
737
|
+
"detail": "CSS Property",
|
|
738
|
+
"documentation": { "value": "Sets one or more background images. Supports URLs and gradient functions." },
|
|
739
|
+
"insertText": "background-image: ${1|url(''),linear-gradient(),radial-gradient()|};",
|
|
740
|
+
"insertTextRules": 4,
|
|
741
|
+
"sortText": "00_background-image"
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"label": "background-size",
|
|
745
|
+
"kind": 14,
|
|
746
|
+
"detail": "CSS Property",
|
|
747
|
+
"documentation": { "value": "Specifies the size of background images.\n\nValues: `auto`, `cover`, `contain`, `<length> <length>`." },
|
|
748
|
+
"insertText": "background-size: ${1|auto,cover,contain|};",
|
|
749
|
+
"insertTextRules": 4,
|
|
750
|
+
"sortText": "00_background-size"
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"label": "background-position",
|
|
754
|
+
"kind": 14,
|
|
755
|
+
"detail": "CSS Property",
|
|
756
|
+
"documentation": { "value": "Sets the initial position of a background image.\n\nKeywords: `top`, `right`, `bottom`, `left`, `center`. Accepts `<position>` pairs." },
|
|
757
|
+
"insertText": "background-position: ${1:center};",
|
|
758
|
+
"insertTextRules": 4,
|
|
759
|
+
"sortText": "00_background-position"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"label": "background-repeat",
|
|
763
|
+
"kind": 14,
|
|
764
|
+
"detail": "CSS Property",
|
|
765
|
+
"documentation": { "value": "Sets how background images are repeated.\n\nValues: `repeat`, `no-repeat`, `repeat-x`, `repeat-y`, `space`, `round`." },
|
|
766
|
+
"insertText": "background-repeat: ${1|no-repeat,repeat,repeat-x,repeat-y,space,round|};",
|
|
767
|
+
"insertTextRules": 4,
|
|
768
|
+
"sortText": "00_background-repeat"
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
"label": "border-radius",
|
|
772
|
+
"kind": 14,
|
|
773
|
+
"detail": "CSS Shorthand Property",
|
|
774
|
+
"documentation": { "value": "Rounds the corners of an element.\n\n`border-radius: 50%;` creates a circle. 1-4 values: TL, TR, BR, BL." },
|
|
775
|
+
"insertText": "border-radius: ${1:0.5rem};",
|
|
776
|
+
"insertTextRules": 4,
|
|
777
|
+
"sortText": "00_border-radius"
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"label": "box-shadow",
|
|
781
|
+
"kind": 14,
|
|
782
|
+
"detail": "CSS Property",
|
|
783
|
+
"documentation": { "value": "Adds shadow effects around an element.\n\nSyntax: `[inset] <x> <y> <blur> [spread] <color>`. Supports multiple shadows." },
|
|
784
|
+
"insertText": "box-shadow: ${1:0 1px 3px rgba(0, 0, 0, 0.12)};",
|
|
785
|
+
"insertTextRules": 4,
|
|
786
|
+
"sortText": "00_box-shadow"
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
"label": "outline",
|
|
790
|
+
"kind": 14,
|
|
791
|
+
"detail": "CSS Shorthand Property",
|
|
792
|
+
"documentation": { "value": "Draws a line outside the element's border. Does NOT affect layout.\n\nSyntax: `<width> <style> <color>`." },
|
|
793
|
+
"insertText": "outline: ${1:2px} ${2|solid,dashed,dotted|} ${3:#000};",
|
|
794
|
+
"insertTextRules": 4,
|
|
795
|
+
"sortText": "00_outline"
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"label": "filter",
|
|
799
|
+
"kind": 14,
|
|
800
|
+
"detail": "CSS Property",
|
|
801
|
+
"documentation": { "value": "Applies graphical effects. Functions: `blur()`, `brightness()`, `contrast()`, `grayscale()`, `hue-rotate()`, `invert()`, `opacity()`, `saturate()`, `sepia()`, `drop-shadow()`." },
|
|
802
|
+
"insertText": "filter: ${1|blur(4px),brightness(0.8),grayscale(100%),drop-shadow(2px 4px 6px rgba(0\\,0\\,0\\,0.3))|};",
|
|
803
|
+
"insertTextRules": 4,
|
|
804
|
+
"sortText": "00_filter"
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"label": "backdrop-filter",
|
|
808
|
+
"kind": 14,
|
|
809
|
+
"detail": "CSS Property",
|
|
810
|
+
"documentation": { "value": "Applies filter effects to the area behind an element. Requires transparent/semi-transparent background.\n\nGlass morphism: `backdrop-filter: blur(10px);`" },
|
|
811
|
+
"insertText": "backdrop-filter: blur(${1:10px});",
|
|
812
|
+
"insertTextRules": 4,
|
|
813
|
+
"sortText": "00_backdrop-filter"
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
"label": "object-fit",
|
|
817
|
+
"kind": 14,
|
|
818
|
+
"detail": "CSS Property",
|
|
819
|
+
"documentation": { "value": "Sets how replaced elements (`<img>`, `<video>`) resize within their container.\n\nValues: `fill`, `contain`, `cover`, `none`, `scale-down`." },
|
|
820
|
+
"insertText": "object-fit: ${1|cover,contain,fill,none,scale-down|};",
|
|
821
|
+
"insertTextRules": 4,
|
|
822
|
+
"sortText": "00_object-fit"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"label": "aspect-ratio",
|
|
826
|
+
"kind": 14,
|
|
827
|
+
"detail": "CSS Property",
|
|
828
|
+
"documentation": { "value": "Sets a preferred aspect ratio. Examples: `16 / 9`, `1` (square), `4 / 3`." },
|
|
829
|
+
"insertText": "aspect-ratio: ${1:16 / 9};",
|
|
830
|
+
"insertTextRules": 4,
|
|
831
|
+
"sortText": "00_aspect-ratio"
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"label": "visibility",
|
|
835
|
+
"kind": 14,
|
|
836
|
+
"detail": "CSS Property",
|
|
837
|
+
"documentation": { "value": "Sets element visibility. `hidden` hides element but preserves layout space (unlike `display: none`)." },
|
|
838
|
+
"insertText": "visibility: ${1|visible,hidden,collapse|};",
|
|
839
|
+
"insertTextRules": 4,
|
|
840
|
+
"sortText": "00_visibility"
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"label": "pointer-events",
|
|
844
|
+
"kind": 14,
|
|
845
|
+
"detail": "CSS Property",
|
|
846
|
+
"documentation": { "value": "Controls whether an element responds to pointer events. `none` makes clicks pass through." },
|
|
847
|
+
"insertText": "pointer-events: ${1|auto,none|};",
|
|
848
|
+
"insertTextRules": 4,
|
|
849
|
+
"sortText": "00_pointer-events"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"label": "user-select",
|
|
853
|
+
"kind": 14,
|
|
854
|
+
"detail": "CSS Property",
|
|
855
|
+
"documentation": { "value": "Controls whether text can be selected. `none` prevents selection, `all` selects entire element on click." },
|
|
856
|
+
"insertText": "user-select: ${1|auto,text,none,all|};",
|
|
857
|
+
"insertTextRules": 4,
|
|
858
|
+
"sortText": "00_user-select"
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
"label": "resize",
|
|
862
|
+
"kind": 14,
|
|
863
|
+
"detail": "CSS Property",
|
|
864
|
+
"documentation": { "value": "Sets whether an element is user-resizable. Requires `overflow` other than `visible`." },
|
|
865
|
+
"insertText": "resize: ${1|none,both,horizontal,vertical|};",
|
|
866
|
+
"insertTextRules": 4,
|
|
867
|
+
"sortText": "00_resize"
|
|
868
|
+
},
|
|
869
|
+
{
|
|
870
|
+
"label": "scroll-behavior",
|
|
871
|
+
"kind": 14,
|
|
872
|
+
"detail": "CSS Property",
|
|
873
|
+
"documentation": { "value": "Sets whether scrolling is instant or smooth. `html { scroll-behavior: smooth; }` for smooth anchor links." },
|
|
874
|
+
"insertText": "scroll-behavior: ${1|auto,smooth|};",
|
|
875
|
+
"insertTextRules": 4,
|
|
876
|
+
"sortText": "00_scroll-behavior"
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"label": "scroll-snap-type",
|
|
880
|
+
"kind": 14,
|
|
881
|
+
"detail": "CSS Property",
|
|
882
|
+
"documentation": { "value": "Enables scroll snapping. Values: `x mandatory`, `y mandatory`, `x proximity`, `y proximity`." },
|
|
883
|
+
"insertText": "scroll-snap-type: ${1|x mandatory,y mandatory,x proximity,y proximity|};",
|
|
884
|
+
"insertTextRules": 4,
|
|
885
|
+
"sortText": "00_scroll-snap-type"
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
"label": "will-change",
|
|
889
|
+
"kind": 14,
|
|
890
|
+
"detail": "CSS Property",
|
|
891
|
+
"documentation": { "value": "Hints to the browser about upcoming changes for optimization. Use sparingly." },
|
|
892
|
+
"insertText": "will-change: ${1|transform,opacity,scroll-position|};",
|
|
893
|
+
"insertTextRules": 4,
|
|
894
|
+
"sortText": "00_will-change"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"label": "contain",
|
|
898
|
+
"kind": 14,
|
|
899
|
+
"detail": "CSS Property",
|
|
900
|
+
"documentation": { "value": "Indicates containment restrictions for performance.\n\nValues: `none`, `strict`, `content`, `size`, `layout`, `style`, `paint`." },
|
|
901
|
+
"insertText": "contain: ${1|none,strict,content,layout,paint|};",
|
|
902
|
+
"insertTextRules": 4,
|
|
903
|
+
"sortText": "00_contain"
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"label": "container-type",
|
|
907
|
+
"kind": 14,
|
|
908
|
+
"detail": "CSS Property (Container Queries)",
|
|
909
|
+
"documentation": { "value": "Establishes element as a containment context for container queries.\n\nValues: `normal`, `inline-size`, `size`." },
|
|
910
|
+
"insertText": "container-type: ${1|inline-size,size,normal|};",
|
|
911
|
+
"insertTextRules": 4,
|
|
912
|
+
"sortText": "00_container-type"
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"label": "container-name",
|
|
916
|
+
"kind": 14,
|
|
917
|
+
"detail": "CSS Property (Container Queries)",
|
|
918
|
+
"documentation": { "value": "Names a container for targeted `@container` queries." },
|
|
919
|
+
"insertText": "container-name: ${1:name};",
|
|
920
|
+
"insertTextRules": 4,
|
|
921
|
+
"sortText": "00_container-name"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"label": "accent-color",
|
|
925
|
+
"kind": 14,
|
|
926
|
+
"detail": "CSS Property",
|
|
927
|
+
"documentation": { "value": "Sets the accent color for checkboxes, radios, range sliders, and progress bars." },
|
|
928
|
+
"insertText": "accent-color: ${1:#3490dc};",
|
|
929
|
+
"insertTextRules": 4,
|
|
930
|
+
"sortText": "00_accent-color"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"label": "color-scheme",
|
|
934
|
+
"kind": 14,
|
|
935
|
+
"detail": "CSS Property",
|
|
936
|
+
"documentation": { "value": "Indicates supported color schemes. `light dark` enables native dark mode for form controls and scrollbars." },
|
|
937
|
+
"insertText": "color-scheme: ${1|light dark,light,dark|};",
|
|
938
|
+
"insertTextRules": 4,
|
|
939
|
+
"sortText": "00_color-scheme"
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"label": "mix-blend-mode",
|
|
943
|
+
"kind": 14,
|
|
944
|
+
"detail": "CSS Property",
|
|
945
|
+
"documentation": { "value": "Defines how element content blends with content behind it.\n\nValues: `normal`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, `color-dodge`, etc." },
|
|
946
|
+
"insertText": "mix-blend-mode: ${1|normal,multiply,screen,overlay,darken,lighten|};",
|
|
947
|
+
"insertTextRules": 4,
|
|
948
|
+
"sortText": "00_mix-blend-mode"
|
|
949
|
+
},
|
|
950
|
+
{
|
|
951
|
+
"label": "isolation",
|
|
952
|
+
"kind": 14,
|
|
953
|
+
"detail": "CSS Property",
|
|
954
|
+
"documentation": { "value": "Creates a new stacking context. `isolate` prevents `mix-blend-mode` from affecting ancestors." },
|
|
955
|
+
"insertText": "isolation: ${1|auto,isolate|};",
|
|
956
|
+
"insertTextRules": 4,
|
|
957
|
+
"sortText": "00_isolation"
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
"label": "min()",
|
|
961
|
+
"kind": 14,
|
|
962
|
+
"detail": "CSS Function",
|
|
963
|
+
"documentation": { "value": "Returns the smallest value from a list. Example: `width: min(100%, 600px);`." },
|
|
964
|
+
"insertText": "min(${1:100%}, ${2:600px})",
|
|
965
|
+
"insertTextRules": 4,
|
|
966
|
+
"sortText": "00_min"
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
"label": "max()",
|
|
970
|
+
"kind": 14,
|
|
971
|
+
"detail": "CSS Function",
|
|
972
|
+
"documentation": { "value": "Returns the largest value. Example: `width: max(300px, 50%);`." },
|
|
973
|
+
"insertText": "max(${1:300px}, ${2:50%})",
|
|
974
|
+
"insertTextRules": 4,
|
|
975
|
+
"sortText": "00_max"
|
|
976
|
+
},
|
|
977
|
+
{
|
|
978
|
+
"label": ":last-child",
|
|
979
|
+
"kind": 14,
|
|
980
|
+
"detail": "CSS Pseudo-class",
|
|
981
|
+
"documentation": { "value": "Matches the last child element. Equivalent to `:nth-last-child(1)`." },
|
|
982
|
+
"insertText": ":last-child",
|
|
983
|
+
"insertTextRules": 0,
|
|
984
|
+
"sortText": "01_last-child"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"label": ":focus-visible",
|
|
988
|
+
"kind": 14,
|
|
989
|
+
"detail": "CSS Pseudo-class",
|
|
990
|
+
"documentation": { "value": "Matches when element has focus AND the browser determines focus should be visible (typically keyboard focus). Preferred over `:focus` for custom focus indicators." },
|
|
991
|
+
"insertText": ":focus-visible {\n\t$0\n}",
|
|
992
|
+
"insertTextRules": 4,
|
|
993
|
+
"sortText": "01_focus-visible"
|
|
994
|
+
},
|
|
995
|
+
{
|
|
996
|
+
"label": ":focus-within",
|
|
997
|
+
"kind": 14,
|
|
998
|
+
"detail": "CSS Pseudo-class",
|
|
999
|
+
"documentation": { "value": "Matches when the element or any of its descendants has focus. Useful for highlighting parent containers of focused inputs." },
|
|
1000
|
+
"insertText": ":focus-within {\n\t$0\n}",
|
|
1001
|
+
"insertTextRules": 4,
|
|
1002
|
+
"sortText": "01_focus-within"
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"label": ":has()",
|
|
1006
|
+
"kind": 14,
|
|
1007
|
+
"detail": "CSS Pseudo-class (Selector)",
|
|
1008
|
+
"documentation": { "value": "The parent selector — matches if any descendant matches the argument.\n\nExamples: `.card:has(img)`, `.form:has(:invalid)`, `h2:has(+ p)`." },
|
|
1009
|
+
"insertText": ":has(${1:selector}) {\n\t$0\n}",
|
|
1010
|
+
"insertTextRules": 4,
|
|
1011
|
+
"sortText": "01_has"
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
"label": ":is()",
|
|
1015
|
+
"kind": 14,
|
|
1016
|
+
"detail": "CSS Pseudo-class (Selector)",
|
|
1017
|
+
"documentation": { "value": "Matches any element matched by one of the selectors in the list. Simplifies complex selectors.\n\nSpecificity: Takes the highest specificity selector. Use `:where()` for zero specificity." },
|
|
1018
|
+
"insertText": ":is(${1:selector-list})",
|
|
1019
|
+
"insertTextRules": 4,
|
|
1020
|
+
"sortText": "01_is"
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
"label": ":where()",
|
|
1024
|
+
"kind": 14,
|
|
1025
|
+
"detail": "CSS Pseudo-class (Selector)",
|
|
1026
|
+
"documentation": { "value": "Like `:is()` but with zero specificity. Ideal for default styles that should be easily overridable." },
|
|
1027
|
+
"insertText": ":where(${1:selector-list})",
|
|
1028
|
+
"insertTextRules": 4,
|
|
1029
|
+
"sortText": "01_where"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"label": ":not()",
|
|
1033
|
+
"kind": 14,
|
|
1034
|
+
"detail": "CSS Pseudo-class (Negation)",
|
|
1035
|
+
"documentation": { "value": "Matches elements that do NOT match the given selector.\n\nExample: `p:not(.special)`, `input:not(:disabled)`." },
|
|
1036
|
+
"insertText": ":not(${1:selector})",
|
|
1037
|
+
"insertTextRules": 4,
|
|
1038
|
+
"sortText": "01_not"
|
|
1039
|
+
},
|
|
1040
|
+
{
|
|
1041
|
+
"label": "::marker",
|
|
1042
|
+
"kind": 14,
|
|
1043
|
+
"detail": "CSS Pseudo-element",
|
|
1044
|
+
"documentation": { "value": "Styles the marker box of a list item (bullet or number). Properties allowed: color, font, content, and a few others." },
|
|
1045
|
+
"insertText": "::marker {\n\t$0\n}",
|
|
1046
|
+
"insertTextRules": 4,
|
|
1047
|
+
"sortText": "01_marker"
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
"label": "::selection",
|
|
1051
|
+
"kind": 14,
|
|
1052
|
+
"detail": "CSS Pseudo-element",
|
|
1053
|
+
"documentation": { "value": "Styles the portion of text selected by the user. Limited properties: `color`, `background-color`, `text-decoration`, `text-shadow`." },
|
|
1054
|
+
"insertText": "::selection {\n\tbackground-color: ${1:#b3d4fc};\n\tcolor: ${2:#000};\n}",
|
|
1055
|
+
"insertTextRules": 4,
|
|
1056
|
+
"sortText": "01_selection"
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"label": "::placeholder",
|
|
1060
|
+
"kind": 14,
|
|
1061
|
+
"detail": "CSS Pseudo-element",
|
|
1062
|
+
"documentation": { "value": "Styles the placeholder text of input and textarea elements." },
|
|
1063
|
+
"insertText": "::placeholder {\n\tcolor: ${1:#9ca3af};\n\topacity: 1;\n}",
|
|
1064
|
+
"insertTextRules": 4,
|
|
1065
|
+
"sortText": "01_placeholder"
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"label": "@property",
|
|
1069
|
+
"kind": 14,
|
|
1070
|
+
"detail": "CSS At-Rule (Custom Properties)",
|
|
1071
|
+
"documentation": { "value": "Registers a custom property with a type, initial value, and inheritance.\n\nEnables animation of custom properties and type checking." },
|
|
1072
|
+
"insertText": "@property --${1:property-name} {\n\tsyntax: '${2|<color>,<length>,<number>,<percentage>,<integer>|}';\n\tinherits: ${3|false,true|};\n\tinitial-value: ${4:value};\n}",
|
|
1073
|
+
"insertTextRules": 4,
|
|
1074
|
+
"sortText": "02_property"
|
|
1075
|
+
},
|
|
1076
|
+
{
|
|
1077
|
+
"label": "@scope",
|
|
1078
|
+
"kind": 14,
|
|
1079
|
+
"detail": "CSS At-Rule (Scoping)",
|
|
1080
|
+
"documentation": { "value": "Scopes styles to a subtree of the DOM. Limits style applicability without increasing specificity.\n\nSyntax: `@scope (.parent) to (.limit) { }`." },
|
|
1081
|
+
"insertText": "@scope (${1:.parent}) {\n\t$0\n}",
|
|
1082
|
+
"insertTextRules": 4,
|
|
1083
|
+
"sortText": "02_scope"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"label": "Truncate Text",
|
|
1087
|
+
"kind": 15,
|
|
1088
|
+
"detail": "Snippet — Single-line text truncation",
|
|
1089
|
+
"documentation": { "value": "Truncates overflowing text with an ellipsis. The classic three-property pattern." },
|
|
1090
|
+
"insertText": "overflow: hidden;\nwhite-space: nowrap;\ntext-overflow: ellipsis;",
|
|
1091
|
+
"insertTextRules": 4,
|
|
1092
|
+
"sortText": "03_truncate"
|
|
1093
|
+
},
|
|
1094
|
+
{
|
|
1095
|
+
"label": "Multi-line Truncate",
|
|
1096
|
+
"kind": 15,
|
|
1097
|
+
"detail": "Snippet — Multi-line text clamp",
|
|
1098
|
+
"documentation": { "value": "Truncates text after N lines using `-webkit-line-clamp`. Works in all modern browsers despite the `-webkit-` prefix." },
|
|
1099
|
+
"insertText": "display: -webkit-box;\n-webkit-line-clamp: ${1:3};\n-webkit-box-orient: vertical;\noverflow: hidden;",
|
|
1100
|
+
"insertTextRules": 4,
|
|
1101
|
+
"sortText": "03_multiline-truncate"
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"label": "Sticky Header",
|
|
1105
|
+
"kind": 15,
|
|
1106
|
+
"detail": "Snippet — Sticky positioned header",
|
|
1107
|
+
"documentation": { "value": "Creates a sticky header that sticks to the top when scrolling past it." },
|
|
1108
|
+
"insertText": "position: sticky;\ntop: 0;\nz-index: 10;\nbackground: ${1:white};",
|
|
1109
|
+
"insertTextRules": 4,
|
|
1110
|
+
"sortText": "03_sticky-header"
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"label": "Absolute Center",
|
|
1114
|
+
"kind": 15,
|
|
1115
|
+
"detail": "Snippet — Center with absolute + translate",
|
|
1116
|
+
"documentation": { "value": "Centers an element absolutely using `translate(-50%, -50%)`." },
|
|
1117
|
+
"insertText": "position: absolute;\ntop: 50%;\nleft: 50%;\ntransform: translate(-50%, -50%);",
|
|
1118
|
+
"insertTextRules": 4,
|
|
1119
|
+
"sortText": "03_absolute-center"
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
"label": "Grid Center",
|
|
1123
|
+
"kind": 15,
|
|
1124
|
+
"detail": "Snippet — Center with Grid",
|
|
1125
|
+
"documentation": { "value": "The shortest CSS centering technique: `display: grid; place-items: center;`." },
|
|
1126
|
+
"insertText": "display: grid;\nplace-items: center;",
|
|
1127
|
+
"insertTextRules": 4,
|
|
1128
|
+
"sortText": "03_grid-center"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"label": "Full-bleed Layout",
|
|
1132
|
+
"kind": 15,
|
|
1133
|
+
"detail": "Snippet — Full-width grid layout",
|
|
1134
|
+
"documentation": { "value": "Creates a layout where content is centered but some elements can break out to full width." },
|
|
1135
|
+
"insertText": "display: grid;\ngrid-template-columns: 1fr min(${1:65ch}, 100% - 2rem) 1fr;\n& > * {\n\tgrid-column: 2;\n}\n& > .full-bleed {\n\tgrid-column: 1 / -1;\n}",
|
|
1136
|
+
"insertTextRules": 4,
|
|
1137
|
+
"sortText": "03_full-bleed"
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"label": "Glass Morphism",
|
|
1141
|
+
"kind": 15,
|
|
1142
|
+
"detail": "Snippet — Frosted glass effect",
|
|
1143
|
+
"documentation": { "value": "Creates a frosted glass effect using `backdrop-filter: blur()` with a semi-transparent background." },
|
|
1144
|
+
"insertText": "background: rgba(${1:255, 255, 255}, ${2:0.15});\nbackdrop-filter: blur(${3:10px});\nborder: 1px solid rgba(255, 255, 255, 0.2);\nborder-radius: ${4:1rem};",
|
|
1145
|
+
"insertTextRules": 4,
|
|
1146
|
+
"sortText": "03_glass-morphism"
|
|
1147
|
+
},
|
|
1148
|
+
{
|
|
1149
|
+
"label": "Scroll Snap Carousel",
|
|
1150
|
+
"kind": 15,
|
|
1151
|
+
"detail": "Snippet — Horizontal scroll snap",
|
|
1152
|
+
"documentation": { "value": "Creates a horizontal carousel with mandatory scroll snap points." },
|
|
1153
|
+
"insertText": "display: flex;\ngap: ${1:1rem};\noverflow-x: auto;\nscroll-snap-type: x mandatory;\nscroll-behavior: smooth;\n& > * {\n\tscroll-snap-align: start;\n\tflex-shrink: 0;\n}",
|
|
1154
|
+
"insertTextRules": 4,
|
|
1155
|
+
"sortText": "03_scroll-snap"
|
|
1156
|
+
},
|
|
1157
|
+
{
|
|
1158
|
+
"label": "Container Query Setup",
|
|
1159
|
+
"kind": 15,
|
|
1160
|
+
"detail": "Snippet — Container query pattern",
|
|
1161
|
+
"documentation": { "value": "Sets up a container query context and a responsive rule that responds to the container's width." },
|
|
1162
|
+
"insertText": "container-type: inline-size;\ncontainer-name: ${1:card};\n\n@container ${1:card} (min-width: ${2:400px}) {\n\t$0\n}",
|
|
1163
|
+
"insertTextRules": 4,
|
|
1164
|
+
"sortText": "03_container-query"
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
"label": "Aspect Ratio Box",
|
|
1168
|
+
"kind": 15,
|
|
1169
|
+
"detail": "Snippet — Responsive aspect ratio",
|
|
1170
|
+
"documentation": { "value": "Creates a responsive container that maintains a fixed aspect ratio. Uses the modern `aspect-ratio` property." },
|
|
1171
|
+
"insertText": "width: 100%;\naspect-ratio: ${1:16 / 9};\nobject-fit: cover;\nborder-radius: ${2:0.5rem};\noverflow: hidden;",
|
|
1172
|
+
"insertTextRules": 4,
|
|
1173
|
+
"sortText": "03_aspect-ratio-box"
|
|
1174
|
+
}
|
|
1175
|
+
]
|
|
1176
|
+
}
|