arsxy-theme 1.0.0.pre.rc

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.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +166 -0
  4. data/_config.yml +131 -0
  5. data/_includes/footer.html +45 -0
  6. data/_includes/header.html +68 -0
  7. data/_includes/image.html +8 -0
  8. data/_includes/related-posts.html +83 -0
  9. data/_includes/search.html +32 -0
  10. data/_includes/social-sharing.html +86 -0
  11. data/_includes/toc.html +83 -0
  12. data/_layouts/default.html +76 -0
  13. data/_layouts/docs.html +90 -0
  14. data/_layouts/home.html +172 -0
  15. data/_layouts/post.html +114 -0
  16. data/_sass/_base.scss +264 -0
  17. data/_sass/_dark-mode.scss +749 -0
  18. data/_sass/_layout.scss +118 -0
  19. data/_sass/_responsive.scss +157 -0
  20. data/_sass/_syntax-highlighting.scss +147 -0
  21. data/_sass/_typography.scss +226 -0
  22. data/_sass/_utilities.scss +138 -0
  23. data/_sass/_variables.scss +63 -0
  24. data/_sass/components/_code.scss +245 -0
  25. data/_sass/components/_docs.scss +263 -0
  26. data/_sass/components/_footer.scss +170 -0
  27. data/_sass/components/_header.scss +313 -0
  28. data/_sass/components/_homepage.scss +597 -0
  29. data/_sass/components/_image.scss +22 -0
  30. data/_sass/components/_pagination.scss +146 -0
  31. data/_sass/components/_post.scss +1039 -0
  32. data/_sass/components/_related-posts.scss +70 -0
  33. data/_sass/components/_search.scss +276 -0
  34. data/_sass/components/_social-sharing.scss +95 -0
  35. data/_sass/components/_toc.scss +193 -0
  36. data/assets/css/main.scss +24 -0
  37. data/assets/images/favicon/android-chrome-192x192.png +0 -0
  38. data/assets/images/favicon/android-chrome-512x512.png +0 -0
  39. data/assets/images/favicon/apple-touch-icon.png +0 -0
  40. data/assets/images/favicon/favicon-16x16.png +0 -0
  41. data/assets/images/favicon/favicon-32x32.png +0 -0
  42. data/assets/images/favicon/favicon.ico +0 -0
  43. data/assets/images/favicon/site.webmanifest +19 -0
  44. data/assets/images/new-features-update.svg +58 -0
  45. data/assets/images/related-posts-example.svg +37 -0
  46. data/assets/images/seo-optimization.png +0 -0
  47. data/assets/images/social-sharing-sample.png +0 -0
  48. data/assets/images/ss-arsxy-theme.png +0 -0
  49. data/assets/images/table-of-content-thumbnail.png +0 -0
  50. data/assets/images/theme-demo-2.jpeg +0 -0
  51. data/assets/images/theme-demo.jpeg +0 -0
  52. data/assets/images/welcome-to-arsxy-theme.png +0 -0
  53. data/assets/js/main.js +369 -0
  54. data/assets/js/search-index.json +31 -0
  55. data/assets/js/search.js +207 -0
  56. metadata +226 -0
@@ -0,0 +1,118 @@
1
+ /* Layout styles */
2
+ .wrapper {
3
+ max-width: 1400px;
4
+ margin: 0 auto;
5
+ padding: 0 $spacing-md;
6
+ flex: 1;
7
+ width: 100%;
8
+ }
9
+
10
+ /* Site content */
11
+ .page-content {
12
+ flex: 1 0 auto;
13
+ padding: $spacing-lg 0;
14
+
15
+ /* Add space between sections */
16
+ section {
17
+ margin-bottom: $spacing-xl;
18
+ }
19
+ }
20
+
21
+ /* Basic grid system */
22
+ .grid-container {
23
+ display: grid;
24
+ grid-template-columns: repeat(12, 1fr);
25
+ grid-gap: $spacing-md;
26
+
27
+ &.grid-2 {
28
+ grid-template-columns: repeat(2, 1fr);
29
+ }
30
+
31
+ &.grid-3 {
32
+ grid-template-columns: repeat(3, 1fr);
33
+ }
34
+
35
+ &.grid-4 {
36
+ grid-template-columns: repeat(4, 1fr);
37
+ }
38
+ }
39
+
40
+ /* Container for home page */
41
+ .home {
42
+ .post-list {
43
+ margin-left: 0;
44
+ list-style: none;
45
+
46
+ > li {
47
+ margin-bottom: $spacing-lg;
48
+ border-bottom: 1px solid $border-color;
49
+ padding-bottom: $spacing-md;
50
+
51
+ &:last-child {
52
+ border-bottom: none;
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ /* Post preview on homepage */
59
+ .post-preview {
60
+ display: grid;
61
+ grid-template-columns: 1fr;
62
+ grid-gap: $spacing-md;
63
+
64
+ @media (min-width: $on-palm) {
65
+ grid-template-columns: 2fr 1fr;
66
+
67
+ &.no-image {
68
+ grid-template-columns: 1fr;
69
+ }
70
+ }
71
+
72
+ .post-preview-content {
73
+ display: flex;
74
+ flex-direction: column;
75
+ }
76
+
77
+ .post-preview-image {
78
+ img {
79
+ width: 100%;
80
+ height: 100%;
81
+ object-fit: cover;
82
+ border-radius: $border-radius;
83
+ }
84
+ }
85
+ }
86
+
87
+ /* Two column layout for pages with sidebar */
88
+ .layout-with-sidebar {
89
+ display: grid;
90
+ grid-template-columns: 1fr;
91
+ grid-gap: $spacing-lg;
92
+
93
+ @media (min-width: $on-laptop) {
94
+ grid-template-columns: 2fr 1fr;
95
+ }
96
+
97
+ .main-content {
98
+ grid-column: 1;
99
+ }
100
+
101
+ .sidebar {
102
+ grid-column: 1;
103
+
104
+ @media (min-width: $on-laptop) {
105
+ grid-column: 2;
106
+ }
107
+ }
108
+ }
109
+
110
+ /* Page header */
111
+ .page-header {
112
+ margin-bottom: $spacing-lg;
113
+ text-align: center;
114
+
115
+ .page-title {
116
+ margin-bottom: $spacing-sm;
117
+ }
118
+ }
@@ -0,0 +1,157 @@
1
+ /* Responsive styles */
2
+
3
+ /* Base responsive adjustments */
4
+ @media (max-width: $on-palm) {
5
+ html {
6
+ font-size: 16px;
7
+ }
8
+
9
+ h1 {
10
+ font-size: 1.9rem;
11
+ }
12
+
13
+ h2 {
14
+ font-size: 1.6rem;
15
+ }
16
+
17
+ h3 {
18
+ font-size: 1.3rem;
19
+ }
20
+
21
+ .wrapper {
22
+ padding: 0 $spacing-sm;
23
+ }
24
+
25
+ /* Adjust spacing for mobile */
26
+ .post-content {
27
+ h1, h2, h3, h4, h5, h6 {
28
+ margin-top: $spacing-lg;
29
+ }
30
+ }
31
+ }
32
+
33
+ /* Medium screens */
34
+ @media (min-width: $on-palm) and (max-width: $on-laptop) {
35
+ .wrapper {
36
+ padding: 0 $spacing-md;
37
+ }
38
+ }
39
+
40
+ /* Home page layout adjustments */
41
+ @media (max-width: $on-palm) {
42
+ .post-preview {
43
+ grid-template-columns: 1fr;
44
+
45
+ .post-preview-image {
46
+ order: -1;
47
+ margin-bottom: $spacing-sm;
48
+ }
49
+ }
50
+ }
51
+
52
+ /* Responsive tables */
53
+ @media (max-width: $on-palm) {
54
+ table {
55
+ display: block;
56
+ overflow-x: auto;
57
+ -webkit-overflow-scrolling: touch;
58
+ }
59
+ }
60
+
61
+ /* Responsive images */
62
+ @media (max-width: $on-palm) {
63
+ .post-content {
64
+ img {
65
+ margin-left: -$spacing-sm;
66
+ margin-right: -$spacing-sm;
67
+ max-width: calc(100% + #{$spacing-sm * 2});
68
+ width: calc(100% + #{$spacing-sm * 2});
69
+ border-radius: 0;
70
+ }
71
+ }
72
+ }
73
+
74
+ /* Navigation for mobile */
75
+ @media (max-width: $on-palm) {
76
+ .site-header {
77
+ .wrapper {
78
+ position: relative; // Ensure proper positioning for children
79
+ }
80
+ }
81
+
82
+ .site-nav {
83
+ position: relative;
84
+ margin-left: auto; // Push to the right side
85
+
86
+ .menu-icon {
87
+ display: block;
88
+ margin-left: auto; // Right align
89
+ }
90
+
91
+ .page-link {
92
+ display: block;
93
+ padding: $spacing-xs 0;
94
+ margin-left: 0; // Reset left margin
95
+ border-bottom: 1px solid rgba($border-color, 0.5);
96
+
97
+ &:last-child {
98
+ border-bottom: none;
99
+ }
100
+ }
101
+
102
+ .trigger {
103
+ max-height: calc(100vh - 100px); // Prevent from being too tall
104
+ overflow-y: auto; // Allow scrolling if too many items
105
+ }
106
+
107
+ // Fix dark mode toggle in mobile menu
108
+ .theme-toggle {
109
+ margin: $spacing-xs 0 0 0;
110
+ justify-content: flex-start;
111
+ }
112
+ }
113
+ }
114
+
115
+ /* Footer responsive adjustments */
116
+ @media (max-width: $on-palm) {
117
+ .site-footer {
118
+ text-align: center;
119
+
120
+ .footer-col {
121
+ margin-bottom: $spacing-md;
122
+ }
123
+
124
+ .footer-links li,
125
+ .social-links li {
126
+ display: inline-block;
127
+ margin: 0 $spacing-xs $spacing-xs 0;
128
+ }
129
+ }
130
+ }
131
+
132
+ /* Post navigation on small screens */
133
+ @media (max-width: $on-palm) {
134
+ .post-navigation {
135
+ flex-direction: column;
136
+ gap: $spacing-sm;
137
+
138
+ a {
139
+ text-align: center;
140
+ width: 100%;
141
+ flex: none;
142
+ }
143
+ }
144
+ }
145
+
146
+ /* Making code blocks more readable on small screens */
147
+ @media (max-width: $on-palm) {
148
+ pre {
149
+ padding: $spacing-sm;
150
+ font-size: 0.85rem;
151
+ }
152
+
153
+ .line-numbers pre span.line::before {
154
+ margin-right: $spacing-xs;
155
+ width: 1.2em;
156
+ }
157
+ }
@@ -0,0 +1,147 @@
1
+ /* Syntax highlighting styles for code blocks */
2
+ .highlight {
3
+ margin-bottom: $spacing-md;
4
+ border-radius: $border-radius;
5
+ background: $code-background;
6
+
7
+ pre {
8
+ padding: $spacing-md;
9
+ overflow-x: auto;
10
+ border-radius: $border-radius;
11
+ border: 1px solid $border-color;
12
+ font-family: $code-font-family;
13
+ font-size: 0.85rem;
14
+ line-height: 1.6;
15
+
16
+ code {
17
+ padding: 0;
18
+ background: none;
19
+ }
20
+ }
21
+
22
+ .hll { background-color: #ffffcc }
23
+ .c { color: #999988; font-style: italic } /* Comment */
24
+ .err { color: #a61717; background-color: #e3d2d2 } /* Error */
25
+ .k { color: #0086B3; font-weight: bold } /* Keyword */
26
+ .o { color: #000000; font-weight: bold } /* Operator */
27
+ .cm { color: #999988; font-style: italic } /* Comment.Multiline */
28
+ .cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
29
+ .c1 { color: #999988; font-style: italic } /* Comment.Single */
30
+ .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
31
+ .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
32
+ .ge { color: #000000; font-style: italic } /* Generic.Emph */
33
+ .gr { color: #aa0000 } /* Generic.Error */
34
+ .gh { color: #999999 } /* Generic.Heading */
35
+ .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
36
+ .go { color: #888888 } /* Generic.Output */
37
+ .gp { color: #555555 } /* Generic.Prompt */
38
+ .gs { font-weight: bold } /* Generic.Strong */
39
+ .gu { color: #aaaaaa } /* Generic.Subheading */
40
+ .gt { color: #aa0000 } /* Generic.Traceback */
41
+ .kc { color: #000000; font-weight: bold } /* Keyword.Constant */
42
+ .kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
43
+ .kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
44
+ .kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
45
+ .kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
46
+ .kt { color: #445588; font-weight: bold } /* Keyword.Type */
47
+ .m { color: #009999 } /* Literal.Number */
48
+ .s { color: #d01040 } /* Literal.String */
49
+ .na { color: #008080 } /* Name.Attribute */
50
+ .nb { color: #0086B3 } /* Name.Builtin */
51
+ .nc { color: #445588; font-weight: bold } /* Name.Class */
52
+ .no { color: #008080 } /* Name.Constant */
53
+ .nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
54
+ .ni { color: #800080 } /* Name.Entity */
55
+ .ne { color: #990000; font-weight: bold } /* Name.Exception */
56
+ .nf { color: #990000; font-weight: bold } /* Name.Function */
57
+ .nl { color: #990000; font-weight: bold } /* Name.Label */
58
+ .nn { color: #555555 } /* Name.Namespace */
59
+ .nt { color: #000080 } /* Name.Tag */
60
+ .nv { color: #008080 } /* Name.Variable */
61
+ .ow { color: #000000; font-weight: bold } /* Operator.Word */
62
+ .w { color: #bbbbbb } /* Text.Whitespace */
63
+ .mf { color: #009999 } /* Literal.Number.Float */
64
+ .mh { color: #009999 } /* Literal.Number.Hex */
65
+ .mi { color: #009999 } /* Literal.Number.Integer */
66
+ .mo { color: #009999 } /* Literal.Number.Oct */
67
+ .sb { color: #d01040 } /* Literal.String.Backtick */
68
+ .sc { color: #d01040 } /* Literal.String.Char */
69
+ .sd { color: #d01040 } /* Literal.String.Doc */
70
+ .s2 { color: #d01040 } /* Literal.String.Double */
71
+ .se { color: #d01040 } /* Literal.String.Escape */
72
+ .sh { color: #d01040 } /* Literal.String.Heredoc */
73
+ .si { color: #d01040 } /* Literal.String.Interpol */
74
+ .sx { color: #d01040 } /* Literal.String.Other */
75
+ .sr { color: #009926 } /* Literal.String.Regex */
76
+ .s1 { color: #d01040 } /* Literal.String.Single */
77
+ .ss { color: #990073 } /* Literal.String.Symbol */
78
+ .bp { color: #999999 } /* Name.Builtin.Pseudo */
79
+ .vc { color: #008080 } /* Name.Variable.Class */
80
+ .vg { color: #008080 } /* Name.Variable.Global */
81
+ .vi { color: #008080 } /* Name.Variable.Instance */
82
+ .il { color: #009999 } /* Literal.Number.Integer.Long */
83
+ }
84
+
85
+ /* Filename caption for code blocks */
86
+ .code-filename {
87
+ display: block;
88
+ background: $gray;
89
+ border-top-left-radius: $border-radius;
90
+ border-top-right-radius: $border-radius;
91
+ padding: $spacing-xs $spacing-sm;
92
+ font-family: $code-font-family;
93
+ font-size: 0.8rem;
94
+ color: darken($text-color, 10%);
95
+ border: 1px solid $border-color;
96
+ border-bottom: none;
97
+
98
+ + .highlight {
99
+ pre {
100
+ border-top-left-radius: 0;
101
+ border-top-right-radius: 0;
102
+ }
103
+ }
104
+ }
105
+
106
+ /* Language label */
107
+ .language-label {
108
+ position: absolute;
109
+ top: 0;
110
+ right: 0;
111
+ padding: 2px 6px;
112
+ font-size: 0.7rem;
113
+ background: $light-gray;
114
+ color: $dark-gray;
115
+ border-bottom-left-radius: $border-radius-sm;
116
+ user-select: none;
117
+ }
118
+
119
+ /* Code block container with relative positioning for language label */
120
+ .code-container {
121
+ position: relative;
122
+ }
123
+
124
+ /* Copy button for code blocks */
125
+ .copy-code-button {
126
+ position: absolute;
127
+ right: $spacing-xs;
128
+ top: $spacing-xs;
129
+ background: $light-gray;
130
+ border: 1px solid $border-color;
131
+ border-radius: $border-radius-sm;
132
+ font-size: 0.75rem;
133
+ padding: 2px 6px;
134
+ color: $dark-gray;
135
+ cursor: pointer;
136
+ transition: $transition-fast;
137
+ opacity: 0;
138
+
139
+ &:hover {
140
+ background: darken($light-gray, 5%);
141
+ color: $text-color;
142
+ }
143
+ }
144
+
145
+ .highlight:hover .copy-code-button {
146
+ opacity: 1;
147
+ }
@@ -0,0 +1,226 @@
1
+ /* Typography styles */
2
+ h1, h2, h3, h4, h5, h6 {
3
+ font-weight: 700;
4
+ line-height: $heading-line-height;
5
+ color: darken($text-color, 5%);
6
+ margin-top: $spacing-lg;
7
+ margin-bottom: $spacing-sm;
8
+ letter-spacing: -0.02em;
9
+ }
10
+
11
+ h1 {
12
+ font-size: 2.5rem;
13
+ margin-top: 0;
14
+ background: linear-gradient(to right, $primary-color, $secondary-color);
15
+ -webkit-background-clip: text;
16
+ -webkit-text-fill-color: transparent;
17
+ background-clip: text;
18
+ color: transparent;
19
+ }
20
+
21
+ h2 {
22
+ font-size: 1.8rem;
23
+ position: relative;
24
+
25
+ &::after {
26
+ content: '';
27
+ display: block;
28
+ width: 3rem;
29
+ height: 0.2rem;
30
+ background: linear-gradient(to right, $secondary-color, $accent-color);
31
+ margin-top: 0.5rem;
32
+ border-radius: 1rem;
33
+ }
34
+ }
35
+
36
+ h3 {
37
+ font-size: 1.5rem;
38
+ }
39
+
40
+ h4 {
41
+ font-size: 1.25rem;
42
+ color: $secondary-color;
43
+ }
44
+
45
+ h5 {
46
+ font-size: 1.1rem;
47
+ }
48
+
49
+ h6 {
50
+ font-size: 1rem;
51
+ text-transform: uppercase;
52
+ letter-spacing: 0.05em;
53
+ }
54
+
55
+ /* Paragraph spacing */
56
+ p {
57
+ margin-bottom: $spacing-md;
58
+ }
59
+
60
+ /* Emphasis and strong */
61
+ em {
62
+ font-style: italic;
63
+ }
64
+
65
+ strong {
66
+ font-weight: 700;
67
+ color: darken($text-color, 10%);
68
+ }
69
+
70
+ /* Lead paragraph (larger, for introductions) */
71
+ .lead {
72
+ font-size: 1.3rem;
73
+ font-weight: 400;
74
+ line-height: 1.6;
75
+ margin-bottom: $spacing-lg;
76
+ color: $secondary-color;
77
+ }
78
+
79
+ /* Drop cap for first paragraph */
80
+ .dropcap {
81
+ float: left;
82
+ font-size: 4rem;
83
+ line-height: 0.7;
84
+ padding-right: 0.2em;
85
+ margin-top: 0.1em;
86
+ font-weight: 700;
87
+ background: linear-gradient($primary-color, $accent-color);
88
+ -webkit-background-clip: text;
89
+ -webkit-text-fill-color: transparent;
90
+ background-clip: text;
91
+ color: transparent;
92
+ }
93
+
94
+ /* Small text */
95
+ small, .small {
96
+ font-size: $small-font-size;
97
+ color: $dark-gray;
98
+ }
99
+
100
+ /* Text utility classes */
101
+ .text-center {
102
+ text-align: center;
103
+ }
104
+
105
+ .text-right {
106
+ text-align: right;
107
+ }
108
+
109
+ .text-left {
110
+ text-align: left;
111
+ }
112
+
113
+ .text-primary {
114
+ color: $primary-color;
115
+ }
116
+
117
+ .text-secondary {
118
+ color: $secondary-color;
119
+ }
120
+
121
+ .text-accent {
122
+ color: $accent-color;
123
+ }
124
+
125
+ .text-muted {
126
+ color: $dark-gray;
127
+ }
128
+
129
+ .text-gradient {
130
+ background: linear-gradient(to right, $primary-color, $accent-color);
131
+ -webkit-background-clip: text;
132
+ -webkit-text-fill-color: transparent;
133
+ background-clip: text;
134
+ color: transparent;
135
+ }
136
+
137
+ /* Lists */
138
+ ul, ol {
139
+ margin-left: $spacing-md;
140
+ margin-bottom: $spacing-md;
141
+
142
+ li {
143
+ margin-bottom: $spacing-xs;
144
+
145
+ &::marker {
146
+ color: $secondary-color;
147
+ }
148
+ }
149
+ }
150
+
151
+ ul.fancy-list {
152
+ list-style: none;
153
+ margin-left: 0;
154
+
155
+ li {
156
+ position: relative;
157
+ padding-left: $spacing-md;
158
+ margin-bottom: $spacing-sm;
159
+
160
+ &::before {
161
+ content: '→';
162
+ color: $accent-color;
163
+ position: absolute;
164
+ left: 0;
165
+ }
166
+ }
167
+ }
168
+
169
+ dl {
170
+ margin-bottom: $spacing-md;
171
+
172
+ dt {
173
+ font-weight: 700;
174
+ margin-top: $spacing-sm;
175
+ color: $secondary-color;
176
+ }
177
+
178
+ dd {
179
+ margin-left: $spacing-md;
180
+ margin-bottom: $spacing-sm;
181
+ }
182
+ }
183
+
184
+ /* Inline code */
185
+ code {
186
+ font-family: $code-font-family;
187
+ font-size: 0.9em;
188
+ padding: 0.2em 0.4em;
189
+ background-color: $code-background;
190
+ border-radius: $border-radius-sm;
191
+ color: $accent-color;
192
+ }
193
+
194
+ /* Links in headings */
195
+ h1, h2, h3, h4, h5, h6 {
196
+ a {
197
+ color: inherit;
198
+
199
+ &:hover {
200
+ color: $link-color;
201
+ text-decoration: none;
202
+ }
203
+ }
204
+ }
205
+
206
+ /* Highlighted text */
207
+ .highlight-text {
208
+ position: relative;
209
+ display: inline-block;
210
+
211
+ &::before {
212
+ content: '';
213
+ position: absolute;
214
+ bottom: 0;
215
+ left: 0;
216
+ height: 0.3em;
217
+ width: 100%;
218
+ background-color: rgba($secondary-color, 0.3);
219
+ z-index: -1;
220
+ transition: $transition-base;
221
+ }
222
+
223
+ &:hover::before {
224
+ height: 0.6em;
225
+ }
226
+ }