From e1d16acddb15ecbd0469cdcaa2811ed3febf0a31 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 7 Nov 2017 14:09:04 +0000 Subject: [PATCH 1/2] Implement general-purpose tooltip "(?)"-style --- src/components/views/rooms/RoomTooltip.js | 11 +++- src/skins/vector/css/_components.scss | 1 + .../views/elements/_ToolTip.scss | 51 +++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss diff --git a/src/components/views/rooms/RoomTooltip.js b/src/components/views/rooms/RoomTooltip.js index bbed5df8a..714d57ca2 100644 --- a/src/components/views/rooms/RoomTooltip.js +++ b/src/components/views/rooms/RoomTooltip.js @@ -19,13 +19,16 @@ limitations under the License. var React = require('react'); var ReactDOM = require('react-dom'); var dis = require('matrix-react-sdk/lib/dispatcher'); +import classNames from 'classnames'; module.exports = React.createClass({ displayName: 'RoomTooltip', propTypes: { - // Alllow the tooltip to be styled by the parent element + // Class applied to the element used to position the tooltip className: React.PropTypes.string.isRequired, + // Class applied to the tooltip itself + tooltipClassName: React.PropTypes.string, // The tooltip is derived from either the room name or a label room: React.PropTypes.object, label: React.PropTypes.string, @@ -69,8 +72,12 @@ module.exports = React.createClass({ style.left = 6 + parent.getBoundingClientRect().right + window.pageXOffset; style.display = "block"; + const tooltipClasses = classNames( + "mx_RoomTooltip", this.props.tooltipClassName, + ); + var tooltip = ( -
+
{ label }
diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index 230b5ae47..a96eef42b 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -35,6 +35,7 @@ @import "./matrix-react-sdk/views/elements/_ProgressBar.scss"; @import "./matrix-react-sdk/views/elements/_RichText.scss"; @import "./matrix-react-sdk/views/elements/_RoleButton.scss"; +@import "./matrix-react-sdk/views/elements/_ToolTip.scss"; @import "./matrix-react-sdk/views/groups/_GroupRoomList.scss"; @import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss"; @import "./matrix-react-sdk/views/login/_ServerConfig.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss new file mode 100644 index 000000000..429ddcf54 --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss @@ -0,0 +1,51 @@ +/* +Copyright 2017 New Vector Ltd. + +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. +*/ + +.mx_ToolTip { + display: inline-block; + width: 11px; + height: 11px; + margin-left: 5px; + + border: 2px solid $neutral-badge-color; + border-radius: 20px; + color: $neutral-badge-color; + + transition: opacity 0.2s ease-in; + opacity: 0.6; + + line-height: 11px; + text-align: center; + + cursor: pointer; +} + +.mx_ToolTip:hover { + opacity: 1.0; +} + +.mx_ToolTip_container { + position: relative; + top: -18px; + left: 4px; +} + +.mx_ToolTip_helpText { + width: 200px; + text-align: center; + line-height: 17px !important; +} + From 4c0e956cc1b3d64016e017f46ec33d5390a29c92 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 7 Nov 2017 15:13:17 +0000 Subject: [PATCH 2/2] Name things in a sane way --- src/skins/vector/css/_components.scss | 2 +- .../views/elements/{_ToolTip.scss => _ToolTipButton.scss} | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename src/skins/vector/css/matrix-react-sdk/views/elements/{_ToolTip.scss => _ToolTipButton.scss} (90%) diff --git a/src/skins/vector/css/_components.scss b/src/skins/vector/css/_components.scss index a96eef42b..767af8058 100644 --- a/src/skins/vector/css/_components.scss +++ b/src/skins/vector/css/_components.scss @@ -35,7 +35,7 @@ @import "./matrix-react-sdk/views/elements/_ProgressBar.scss"; @import "./matrix-react-sdk/views/elements/_RichText.scss"; @import "./matrix-react-sdk/views/elements/_RoleButton.scss"; -@import "./matrix-react-sdk/views/elements/_ToolTip.scss"; +@import "./matrix-react-sdk/views/elements/_ToolTipButton.scss"; @import "./matrix-react-sdk/views/groups/_GroupRoomList.scss"; @import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss"; @import "./matrix-react-sdk/views/login/_ServerConfig.scss"; diff --git a/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss similarity index 90% rename from src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss rename to src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss index 429ddcf54..ef9dd02b2 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTip.scss +++ b/src/skins/vector/css/matrix-react-sdk/views/elements/_ToolTipButton.scss @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -.mx_ToolTip { +.mx_ToolTipButton { display: inline-block; width: 11px; height: 11px; @@ -33,17 +33,17 @@ limitations under the License. cursor: pointer; } -.mx_ToolTip:hover { +.mx_ToolTipButton:hover { opacity: 1.0; } -.mx_ToolTip_container { +.mx_ToolTipButton_container { position: relative; top: -18px; left: 4px; } -.mx_ToolTip_helpText { +.mx_ToolTipButton_helpText { width: 200px; text-align: center; line-height: 17px !important;