33 id =" search-form"
44 class =" meilisearch-search-wrapper search-box"
55 role =" search"
6+ :class =" 'theme-' + theme"
67 >
78 <input
89 id =" meilisearch-search-input"
@@ -17,6 +18,7 @@ export default {
1718 name: ' MeiliSearchBox' ,
1819 data () {
1920 return {
21+ theme: false ,
2022 placeholder: undefined
2123 }
2224 },
@@ -43,6 +45,7 @@ export default {
4345 debug: DEBUG ,
4446 enableDarkMode: ENABLE_DARK_MODE
4547 }
48+ this .updateTheme (options)
4649 this .initialize (options)
4750 this .placeholder =
4851 PLACEHOLDER || this .$site .themeConfig .searchPlaceholder || ' '
@@ -72,9 +75,14 @@ export default {
7275 },
7376
7477 update (options ) {
78+ this .updateTheme (options)
7579 this .$el .innerHTML =
7680 ' <input id="meilisearch-search-input" class="search-query">'
7781 this .initialize (options)
82+ },
83+
84+ updateTheme (options ) {
85+ this .theme = options .enableDarkMode === true ? ' dark' : options .enableDarkMode === false ? ' light' : ' auto'
7886 }
7987 }
8088}
@@ -83,6 +91,55 @@ export default {
8391<style lang="stylus">
8492@require './styles/palette.styl'
8593
94+ light-input ()
95+ color lighten ($textColor , 25% )
96+ border 1px solid darken ($borderColor , 10% )
97+ background-color #f f f
98+ & :focus
99+ border-color $accentColor
100+
101+ dark-input ()
102+ color $textDarkColor
103+ border 1px solid $borderDarkColor
104+ background-color $inputDarkBgColor
105+ & :focus
106+ border-color $accentDarkColor
107+
108+ // Searchbox
109+ #meilisearch-search-input
110+ cursor text
111+ width 10rem
112+ height : 2rem
113+ display inline-block
114+ border-radius 2rem
115+ font-size 0.9rem
116+ line-height 2rem
117+ padding 0 0.5rem 0 2rem
118+ outline none
119+ transition border .2s ease
120+ background : url (assets /search .svg ) 0.6rem 0.5rem no-repeat
121+ & :focus
122+ cursor auto
123+ background-size 1rem
124+
125+ .meilisearch-search-wrapper.theme-light
126+ #meilisearch-search-input
127+ light-input ()
128+
129+ .meilisearch-search-wrapper.theme-dark
130+ #meilisearch-search-input
131+ dark-input ()
132+
133+ @media (prefers-color -scheme: dark)
134+ .meilisearch-search-wrapper.theme-auto
135+ #meilisearch-search-input
136+ dark-input ()
137+
138+ @media (prefers-color -scheme: light)
139+ .meilisearch-search-wrapper.theme-auto
140+ #meilisearch-search-input
141+ light-input ()
142+
86143.meilisearch-search-wrapper
87144 display : inline-block ;
88145 position : relative ;
@@ -91,29 +148,9 @@ export default {
91148 vertical-align middle
92149 .dsb-cursor
93150 background rgba ($accentColor, 0.05 )
94-
95- // Searchbox
96- #meilisearch-search-input
97- cursor text
98- width 10rem
99- height : 2rem
100- color lighten ($textColor , 25% )
101- display inline-block
102- border 1px solid darken ($borderColor , 10% )
103- border-radius 2rem
104- font-size 0.9rem
105- line-height 2rem
106- padding 0 0.5rem 0 2rem
107- outline none
108- transition all .2s ease
109- & :focus
110- cursor auto
111- border-color $accentColor
112- background #f f f url (assets /search .svg ) 0.6rem 0.5rem no-repeat
113- background-size 1rem
114-
115151 .meilisearch-autocomplete
116152 line-height : 2
153+
117154 // Layout "columns"
118155 .docs-searchbar-suggestion :not (.suggestion-layout-simple )
119156 border-color $borderColor
@@ -178,14 +215,6 @@ export default {
178215 .dsb-dropdown-menu [class^ = dsb-dataset- ], .docs-searchbar-suggestion
179216 background $dropdownBgDarkColor
180217
181- // Searchbox
182- #meilisearch-search-input
183- color $textDarkColor
184- border 1px solid $borderDarkColor
185- background-color $inputDarkBgColor
186- & :focus
187- border-color $accentDarkColor
188-
189218 // Layout "columns"
190219 .docs-searchbar-suggestion :not (.suggestion-layout-simple )
191220 border-color $borderDarkColor
0 commit comments