mirror of
https://github.com/Lissy93/dashy.git
synced 2025-07-27 07:34:43 +02:00
�� Refactor CSS to use constants for media queries
This commit is contained in:
parent
33127ab414
commit
7c016ac2e8
@ -3,18 +3,18 @@
|
|||||||
:href="target !== 'iframe' ? url : '#'"
|
:href="target !== 'iframe' ? url : '#'"
|
||||||
:target="target === 'newtab' ? '_blank' : ''"
|
:target="target === 'newtab' ? '_blank' : ''"
|
||||||
:class="`item ${!icon? 'short': ''} size-${itemSize}`"
|
:class="`item ${!icon? 'short': ''} size-${itemSize}`"
|
||||||
:id="`link-${id}`"
|
|
||||||
v-tooltip="getTooltipOptions()"
|
v-tooltip="getTooltipOptions()"
|
||||||
rel="noopener noreferrer"
|
v-bind:style="customStyles"
|
||||||
tabindex="0"
|
rel="noopener noreferrer" tabindex="0"
|
||||||
|
:id="`link-${id}`"
|
||||||
>
|
>
|
||||||
<!-- Item Text -->
|
<!-- Item Text -->
|
||||||
<div class="tile-title" :id="`tile-${id}`">
|
<div class="tile-title" :id="`tile-${id}`" >
|
||||||
<span class="text">{{ title }}</span>
|
<span class="text">{{ title }}</span>
|
||||||
<div class="overflow-dots">...</div>
|
<div class="overflow-dots">...</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Item Icon -->
|
<!-- Item Icon -->
|
||||||
<Icon :icon="icon" :url="url" :size="itemSize" />
|
<Icon :icon="icon" :url="url" :size="itemSize" :color="color" v-bind:style="customStyles" />
|
||||||
<!-- Small icon, showing opening method on hover -->
|
<!-- Small icon, showing opening method on hover -->
|
||||||
<ItemOpenMethodIcon class="opening-method-icon" :isSmall="!icon" :openingMethod="target"
|
<ItemOpenMethodIcon class="opening-method-icon" :isSmall="!icon" :openingMethod="target"
|
||||||
:position="itemSize === 'medium'? 'bottom right' : 'top right'"/>
|
:position="itemSize === 'medium'? 'bottom right' : 'top right'"/>
|
||||||
@ -33,7 +33,8 @@ export default {
|
|||||||
subtitle: String, // Optional sub-text
|
subtitle: String, // Optional sub-text
|
||||||
description: String, // Optional tooltip hover text
|
description: String, // Optional tooltip hover text
|
||||||
icon: String, // Optional path to icon, within public/img/tile-icons
|
icon: String, // Optional path to icon, within public/img/tile-icons
|
||||||
color: String, // Optional background color, specified in hex code
|
color: String, // Optional text and icon color, specified in hex code
|
||||||
|
backgroundColor: String, // Optional item background color
|
||||||
url: String, // URL to the resource, optional but recommended
|
url: String, // URL to the resource, optional but recommended
|
||||||
target: { // Where resource will open, either 'newtab', 'sametab' or 'iframe'
|
target: { // Where resource will open, either 'newtab', 'sametab' or 'iframe'
|
||||||
type: String,
|
type: String,
|
||||||
@ -45,6 +46,10 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
getId: this.id,
|
getId: this.id,
|
||||||
|
customStyles: {
|
||||||
|
color: this.color,
|
||||||
|
background: this.backgroundColor,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@ -132,7 +137,6 @@ export default {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
span.text {
|
span.text {
|
||||||
position: absolute;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
transition: 1s;
|
transition: 1s;
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
:description="item.description"
|
:description="item.description"
|
||||||
:icon="item.icon"
|
:icon="item.icon"
|
||||||
:target="item.target"
|
:target="item.target"
|
||||||
|
:color="item.color"
|
||||||
|
:backgroundColor="item.backgroundColor"
|
||||||
:itemSize="newItemSize"
|
:itemSize="newItemSize"
|
||||||
@itemClicked="$emit('itemClicked')"
|
@itemClicked="$emit('itemClicked')"
|
||||||
@triggerModal="triggerModal"
|
@triggerModal="triggerModal"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<i v-if="determineImageType(icon) === 'font-awesome'" :class="`${icon} ${size}`"></i>
|
<i v-if="determineImageType(icon) === 'font-awesome'" :class="`${icon} ${size}`" ></i>
|
||||||
<img v-else-if="icon" :src="getIconPath(icon, url)" :class="`tile-icon ${size}`" />
|
<img v-else-if="icon" :src="getIconPath(icon, url)" :class="`tile-icon ${size}`" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@ export default {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
@import '@/styles/media-queries.scss';
|
||||||
|
|
||||||
header {
|
header {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
@ -39,7 +41,7 @@ export default {
|
|||||||
background: var(--background-darker);
|
background: var(--background-darker);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-content: flex-start;
|
align-content: flex-start;
|
||||||
@media screen and (max-width: 600px) {
|
@include phone {
|
||||||
flex-direction: column-reverse;
|
flex-direction: column-reverse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,16 +16,13 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
@import '@/styles/media-queries.scss';
|
||||||
|
|
||||||
.page-titles {
|
.page-titles {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
h1 {
|
h1 {
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
// background: -webkit-linear-gradient(to left top, #9F86FF, #1CA8DD, #007AE1);
|
|
||||||
// background: linear-gradient(to left top, #9F86FF, #1CA8DD, #007AE1);
|
|
||||||
// -webkit-background-clip: text;
|
|
||||||
// -webkit-text-fill-color: transparent;
|
|
||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@ -35,7 +32,7 @@ export default {
|
|||||||
text-shadow: 1px 1px 2px #130f23;
|
text-shadow: 1px 1px 2px #130f23;
|
||||||
opacity: var(--dimming-factor);
|
opacity: var(--dimming-factor);
|
||||||
}
|
}
|
||||||
@media screen and (max-width: 600px) {
|
@include phone {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 0.25rem 0;
|
padding: 0.25rem 0;
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,8 @@ export default {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
@import '@/styles/media-queries.scss';
|
||||||
|
|
||||||
.kb-sc-info {
|
.kb-sc-info {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 30em;
|
width: 30em;
|
||||||
@ -82,7 +84,7 @@ export default {
|
|||||||
background: var(--background-darker);
|
background: var(--background-darker);
|
||||||
cursor: default;
|
cursor: default;
|
||||||
opacity: 0.94;
|
opacity: 0.94;
|
||||||
@media screen and (max-width: 600px) {
|
@include phone {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
h5 { /* The dialog title */
|
h5 { /* The dialog title */
|
||||||
|
@ -50,8 +50,11 @@ export default {
|
|||||||
getInitialTheme() {
|
getInitialTheme() {
|
||||||
return this.appConfig.theme || '';
|
return this.appConfig.theme || '';
|
||||||
},
|
},
|
||||||
|
/* Gets user themes if available */
|
||||||
getUserThemes() {
|
getUserThemes() {
|
||||||
return this.appConfig.cssThemes || [];
|
const userThemes = this.appConfig.cssThemes || [];
|
||||||
|
if (typeof userThemes === 'string') return [userThemes];
|
||||||
|
return userThemes;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -30,7 +30,7 @@ export default {
|
|||||||
selectedTheme: this.getInitialTheme(),
|
selectedTheme: this.getInitialTheme(),
|
||||||
themeHelper: new ThemeHelper(),
|
themeHelper: new ThemeHelper(),
|
||||||
loading: true,
|
loading: true,
|
||||||
builtInThemes: Defaults.builtInThemes.concat(this.userThemes),
|
builtInThemes: this.userThemes.concat(Defaults.builtInThemes),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user