summaryrefslogtreecommitdiffstats
path: root/WebContent/VAADIN
diff options
context:
space:
mode:
Diffstat (limited to 'WebContent/VAADIN')
-rw-r--r--WebContent/VAADIN/themes/base/grid/grid.scss90
-rw-r--r--WebContent/VAADIN/themes/reindeer/grid/grid.scss31
-rw-r--r--WebContent/VAADIN/themes/runo/grid/grid.scss4
-rw-r--r--WebContent/VAADIN/themes/valo/components/_grid.scss105
-rw-r--r--WebContent/VAADIN/themes/valo/shared/_global.scss10
5 files changed, 215 insertions, 25 deletions
diff --git a/WebContent/VAADIN/themes/base/grid/grid.scss b/WebContent/VAADIN/themes/base/grid/grid.scss
index ed068a5efc..a79420f7a9 100644
--- a/WebContent/VAADIN/themes/base/grid/grid.scss
+++ b/WebContent/VAADIN/themes/base/grid/grid.scss
@@ -85,7 +85,8 @@ $v-grid-editor-background-color: $v-grid-row-background-color !default;
// Rows
- .#{$primaryStyleName}-row > td {
+ .#{$primaryStyleName}-row > td,
+ .#{$primaryStyleName}-editor-cells > div {
border-left: $v-grid-cell-vertical-border;
border-bottom: $v-grid-cell-horizontal-border;
@@ -221,22 +222,35 @@ $v-grid-editor-background-color: $v-grid-row-background-color !default;
// Editor
.#{$primaryStyleName}-editor {
- // TODO should be fixed in offset calculations
- margin-top: -1px;
position: absolute;
- overflow-y: visible;
- background: $v-grid-editor-background-color;
- @include box-shadow(0 0 10px 1px rgba(0,0,0,.3));
+ z-index: 20;
+ overflow: hidden;
+ left: 0;
+ right: 0;
+ border: $v-grid-border;
+ margin-top: nth($v-grid-border, 1) * -1;
+ @include box-shadow(0 0 9px rgba(0,0,0,.2));
+ }
+
+ .#{$primaryStyleName}-editor-cells {
+ position: relative;
+ white-space: nowrap;
> div {
- position: absolute;
+ display: inline-block;
@include box-sizing(border-box);
- border-left: $v-grid-cell-vertical-border;
+ vertical-align: middle;
+ background: $v-grid-editor-background-color;
&:first-child {
border-left: none;
}
+ > * {
+ vertical-align: middle;
+ display: inline-block;
+ }
+
.v-textfield,
.v-datefield,
.v-filterselect {
@@ -244,24 +258,60 @@ $v-grid-editor-background-color: $v-grid-row-background-color !default;
max-width: 100%;
min-height: 100%;
max-height: 100%;
- border: none;
- border-radius: 0;
}
- .v-textfield-focus,
- .v-filterselect-focus input {
- position: relative;
- z-index: 1;
+ .v-select,
+ .v-select-select {
+ min-width: 100%;
+ max-width: 100%;
}
}
}
- .#{$primaryStyleName}-editor-save,
- .#{$primaryStyleName}-editor-cancel {
- position: absolute;
- // TODO remove the inline size from the widgets
- width: auto !important;
- height: auto !important;
+ .#{$primaryStyleName}-editor-footer {
+ display: table;
+ height: $v-grid-row-height;
+ border-top: $v-grid-cell-horizontal-border;
+ margin-top: nth($v-grid-cell-horizontal-border, 1) * -1;
+ background: $v-grid-row-background-color;
+ padding: 0 5px;
+
+ + .#{$primaryStyleName}-editor-cells > div {
+ border-bottom: none;
+ border-top: $v-grid-cell-horizontal-border;
+ }
+
+ &:first-child {
+ border-top: none;
+ margin-top: 0;
+ border-bottom: $v-grid-cell-horizontal-border;
+ margin-bottom: nth($v-grid-cell-horizontal-border, 1) * -1;
+ }
+ }
+
+ .#{$primaryStyleName}-editor-message,
+ .#{$primaryStyleName}-editor-buttons {
+ display: table-cell;
+ white-space: nowrap;
+ vertical-align: middle;
+ }
+
+ .#{$primaryStyleName}-editor-message {
+ width: 100%;
+ position: relative;
+
+ > div {
+ position: absolute;
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: $v-grid-row-height;
+ top: 0;
+ }
+ }
+
+ .#{$primaryStyleName}-editor-save {
+ margin-right: 4px;
}
// Renderers
diff --git a/WebContent/VAADIN/themes/reindeer/grid/grid.scss b/WebContent/VAADIN/themes/reindeer/grid/grid.scss
index 8dacb3ccce..28c5977fda 100644
--- a/WebContent/VAADIN/themes/reindeer/grid/grid.scss
+++ b/WebContent/VAADIN/themes/reindeer/grid/grid.scss
@@ -57,4 +57,35 @@
background-image: url(img/desc-light.png);
}
+ .#{$primaryStyleName}-editor-footer {
+ background: #dfe1e3;
+ }
+
+ .#{$primaryStyleName}-editor-cells > div {
+ .v-textfield,
+ .v-textfield-focus,
+ .v-datefield,
+ .v-datefield .v-textfield-focus,
+ .v-filterselect,
+ .v-filterselect-input,
+ .v-filterselect-input:focus {
+ border: none;
+ border-radius: 0;
+ background: transparent;
+ }
+
+ .v-filterselect {
+ overflow: hidden;
+ }
+
+ .v-filterselect-input {
+ height: 100%;
+ }
+
+ .v-filterselect-button {
+ // 24px is the height of v-filterselect
+ margin-top: round((24px - $v-grid-row-height) / -2)
+ }
+ }
+
}
diff --git a/WebContent/VAADIN/themes/runo/grid/grid.scss b/WebContent/VAADIN/themes/runo/grid/grid.scss
index a1081878cc..06a04ec626 100644
--- a/WebContent/VAADIN/themes/runo/grid/grid.scss
+++ b/WebContent/VAADIN/themes/runo/grid/grid.scss
@@ -50,4 +50,8 @@
background-image: url(img/sort-desc.png);
}
+ .#{$primaryStyleName}-editor-footer {
+ background: #e7e9ea;
+ }
+
}
diff --git a/WebContent/VAADIN/themes/valo/components/_grid.scss b/WebContent/VAADIN/themes/valo/components/_grid.scss
index 50c7169225..c481f127a8 100644
--- a/WebContent/VAADIN/themes/valo/components/_grid.scss
+++ b/WebContent/VAADIN/themes/valo/components/_grid.scss
@@ -3,7 +3,7 @@
$v-grid-row-background-color: valo-table-background-color() !default;
$v-grid-row-stripe-background-color: scale-color($v-grid-row-background-color, $lightness: if(color-luminance($v-grid-row-background-color) < 10, 4%, -4%)) !default;
-$v-grid-border: valo-border($color: $v-grid-row-background-color, $strength: 0.8) !default;
+$v-grid-border: flatten-list(valo-border($color: $v-grid-row-background-color, $strength: 0.8)) !default;
$v-grid-cell-focused-border: max(2px, first-number($v-border)) solid $v-selection-color !default;
$v-grid-row-height: $v-table-row-height !default;
@@ -14,6 +14,8 @@ $v-grid-header-background-color: $v-background-color !default;
$v-grid-cell-padding-horizontal: $v-table-cell-padding-horizontal !default;
+$v-grid-animations-enabled: $v-animations-enabled !default;
+
@import "../../base/grid/grid";
@@ -68,10 +70,91 @@ $v-grid-cell-padding-horizontal: $v-table-cell-padding-horizontal !default;
}
}
+ .#{$primary-stylename}-editor {
+ @include valo-focus-style;
+ border-color: $v-focus-color;
+ }
+
+ .#{$primary-stylename}-editor-footer {
+ font-size: $v-font-size--small;
+ padding: 0 round($v-layout-spacing-horizontal / 2);
+ background: $v-app-background-color;
+ @if $v-grid-animations-enabled {
+ @include animation(valo-grid-editor-footer-animate-in 200ms 120ms backwards);
+ }
+ }
+
+ @if $v-grid-animations-enabled {
+ .#{$primary-stylename}-editor-footer:first-child {
+ @include animation(valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards);
+ }
+ }
+
+ .#{$primary-stylename}-editor-cells {
+ z-index: 1;
+ }
+
+ .#{$primary-stylename}-editor-cells > div {
+ // Vertical centering for widgets
+ &:before {
+ content: "";
+ display: inline-block;
+ height: 100%;
+ vertical-align: middle;
+ }
+
+ .v-textfield,
+ .v-textfield-focus,
+ .v-datefield,
+ .v-datefield .v-textfield-focus,
+ .v-filterselect-input,
+ .v-filterselect-input:focus {
+ border: none;
+ border-radius: 0;
+ background: transparent;
+
+ @if $v-textfield-bevel {
+ @include box-shadow(valo-bevel-and-shadow($bevel: $v-textfield-bevel));
+ } @else {
+ @include box-shadow(none);
+ }
+ }
+
+ .v-textfield-focus,
+ .v-datefield .v-textfield-focus,
+ .v-filterselect-input:focus {
+ position: relative;
+ }
+
+ .v-select {
+ padding-left: round($v-grid-cell-padding-horizontal / 2);
+ padding-right: round($v-grid-cell-padding-horizontal / 2);
+ }
+
+ .v-checkbox {
+ margin: 0 round($v-grid-cell-padding-horizontal / 2);
+
+ label {
+ white-space: nowrap;
+ }
+ }
+ }
+
+ .#{$primary-stylename}-editor-message > div:before {
+ display: inline-block;
+ @include valo-error-indicator-style($is-pseudo-element: true);
+ }
+
.#{$primary-stylename}-editor-save,
.#{$primary-stylename}-editor-cancel {
- @include valo-button-static-style;
- @include valo-button-style($unit-size: $v-unit-size--small, $font-size: $v-font-size--small);
+ @include valo-link-style;
+ font-weight: $v-font-weight + 100;
+ text-decoration: none;
+ border: none;
+ background: transparent;
+ padding: round($v-layout-spacing-vertical / 2) round($v-layout-spacing-horizontal / 2);
+ margin: 0;
+ outline: none;
}
// Customize scrollbars
@@ -98,3 +181,19 @@ $v-grid-cell-padding-horizontal: $v-table-cell-padding-horizontal !default;
}
}
+
+
+@include keyframes(valo-grid-editor-footer-animate-in) {
+ 0% {
+ margin-top: -$v-grid-row-height;
+ }
+}
+
+@include keyframes(valo-grid-editor-footer-animate-in-alt) {
+ 0% {
+ margin-bottom: -$v-grid-row-height - first-number($v-grid-cell-horizontal-border);
+ }
+ 100% {
+ margin-bottom: first-number($v-grid-cell-horizontal-border) * -1;
+ }
+}
diff --git a/WebContent/VAADIN/themes/valo/shared/_global.scss b/WebContent/VAADIN/themes/valo/shared/_global.scss
index 4ce294b06a..b4e8564119 100644
--- a/WebContent/VAADIN/themes/valo/shared/_global.scss
+++ b/WebContent/VAADIN/themes/valo/shared/_global.scss
@@ -394,16 +394,22 @@ $valo-shared-pathPrefix: null;
/**
* Error indicator styles. The error indicator is by default a font character which you can style freely.
*
+ * @param {boolean} $is-pseudo-element (false) - is the selector including this mixin targeting a pseudo element
+ *
* @requires {mixin} valo-error-indicator-icon-style by default
*/
-@mixin valo-error-indicator-style {
+@mixin valo-error-indicator-style ($is-pseudo-element: false) {
color: $v-error-indicator-color;
font-weight: 600;
width: ceil($v-unit-size/2);
text-align: center;
- &:before {
+ @if $is-pseudo-element {
@include valo-error-indicator-icon-style;
+ } @else {
+ &:before {
+ @include valo-error-indicator-icon-style;
+ }
}
}