/***************************************************************************** * Open MCT, Copyright (c) 2014-2017, United States Government * as represented by the Administrator of the National Aeronautics and Space * Administration. All rights reserved. * * Open MCT is licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * Open MCT includes source code licensed under additional open source * licenses. See the Open Source Licenses file (LICENSES.md) included with * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ .frame { $ohH: $btnFrameH; $bc: $colorInteriorBorder; &.child-frame.panel { z-index: 0; // Needed to prevent child-frame controls from showing through when another child-frame is above &:not(.no-frame) { background: $colorBodyBg; border: 1px solid $bc; &:hover { border-color: lighten($bc, 10%); } } } .object-browse-bar { font-size: 0.75em; height: $ohH; line-height: $ohH; .right { @include trans-prop-nice-fade($controlFadeMs); padding-left: $interiorMargin; } } &.t-object-type-timer, &.t-object-type-clock, &.t-object-type-hyperlink { // Hide the right side buttons for objects where they don't make sense // Note that this will hide the view Switcher button if applied // to an object that it. .object-browse-bar .right { display: none; } } > .object-holder.abs { top: $ohH + $interiorMargin; } .contents { $m: $interiorMargin; top: $m; right: $m; bottom: $m; left: $m; } &.frame-template { .s-button, .s-menu-button { height: $ohH; line-height: $ohH; padding: 0 $interiorMargin; > span, &:before { font-size: 0.65rem; } } .s-menu-button:after { font-size: 8px; } .view-switcher { z-index: 10; } } .view-switcher { margin-right: $interiorMargin; // Kick other top bar elements away when I'm present. // Hide the name when the view switcher is in a frame context .title-label { display: none; } } &.no-frame { background: transparent !important; border: none !important; .object-browse-bar .right { $m: 0; // $interiorMarginSm; background: rgba(black, 0.3); border-radius: $basicCr; padding: $interiorMarginSm; position: absolute; top: $m; right: $m; z-index: 2; } &.t-frame-outer > .t-rep-frame { &.contents { $m: 2px; top: $m; right: $m; bottom: $m; left: $m; } > .t-frame-inner { > .object-browse-bar .left { display: none; } > .object-holder.abs { top: 0 !important; } } } } /********************************************************** OBJECT TYPES */ .t-object-type-hyperlink { .s-hyperlink.s-button { // When a hyperlink is a button in a frame, make it expand to fill out to the object-holder @extend .abs; .label { @include ellipsize(); @include transform(translateY(-50%)); padding: 0 $interiorMargin; position: absolute; min-width: 0; left: 0; right: 0; text-align: center; top: 50%; } } } } body.desktop .frame { // Hide local controls initially and show it them on hover when they're in an element that's in a frame context // Frame template is used because we need to target the lowest nested frame .right { opacity: 0; pointer-events: none; } // Target the first descendant so that we only show the elements in the outermost container. // Handles the case where we have layouts in layouts. &:hover > .object-browse-bar { .right { opacity: 1; pointer-events: inherit; } } }