blob: 672141cdbc038ba4239e23f02f558fd149767f5c [file] [log] [blame]
<!DOCTYPE html>
<!--
| This demo demonstrates how scroll container should behave in RTL mode.
-->
<html>
<head>
<style>
body {
background-color: rgb(25,25,25);
color: rgb(200,200,200);
width: 1920px;
height: 720px;
}
.vscroll {
overflow: auto;
position: absolute;
transform: translate(100px,100px);
background-color: rgb(50,50,50);
width: 1080px;
height: 520px;
}
.hscroll {
overflow: auto;
position: relative;
background-color: rgb(75, 75, 75);
width: 1080px;
height: 320px;
}
/*
* focusItem is used as the actual focusable item. Its dimensions are
* static so that the underlying SbUiNavigation system knows how much to
* scroll to ensure it is fully visible. The scroll animation is usually
* calculated to bring the to-be-focused item into view, but if that item
* is resized after the animation starts, then the animation may no
* longer end with the larger item in full view.
*/
.focusItem {
overflow: hidden;
position: absolute;
width: 300px;
height: 300px;
outline: none;
}
/*
* focusContent will react to focus changes. Its size will grow when
* its parent receives focus.
*/
.focusContent {
overflow: hidden;
margin: 20px;
border: 5px solid rgb(0,0,0);
width: 250px;
height: 250px;
line-height: 250px;
text-align: center;
vertical-align: middle;
font-size: 100px;
/*
* The user may be scrolling through items quickly. Use a transition
* delay so that the transition is shown once the user settles on a
* focus item.
*/
transition: transform 0.5s;
transition-delay: 0.1s;
}
/*
* Update focusContent when the parent is focused.
*/
.focusItem:focus .focusContent {
background-color: rgb(240,240,240);
color: rgb(0,0,0);
transform: -cobalt-ui-nav-focus-transform() scale(1.1);
}
/*
* Add a spotlight to focusContent when the parent is focused.
*/
.focusItem:focus .focusContent::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(rgba(255,0,0,0.5) 0%, rgba(255,0,0,0) 30%);
transform: -cobalt-ui-nav-spotlight-transform();
}
</style>
</head>
<body class="body">
<div class="vscroll">
<div class="hscroll" dir="rtl">
<!--
| translateX() should be honored when computing items' position in rtl mode.
| The right edge of A0 should be 50px from the right edge of the container when the
| page is rendered.
| User should be able to scroll items using the entire width of the container,
| meaning A0 should be visibly translated from the initial position to the right edge
| of the container.
| A0 should stop 50px from the right edge of the container when scrolling back to
| A0.
-->
<div id="start" class="focusItem" tabindex="-2" style="transform: translateX(-50px)">
<div class="focusContent">A0</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-350px)">
<div class="focusContent">A1</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-650px)">
<div class="focusContent">A2</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-950px)">
<div class="focusContent">A3</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1250px)">
<div class="focusContent">A4</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1550px)">
<div class="focusContent">A5</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1850px)">
<div class="focusContent">A6</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2150px)">
<div class="focusContent">A7</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2450px)">
<div class="focusContent">A8</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2750px)">
<div class="focusContent">A9</div>
</div>
</div>
<div class="hscroll" dir="rtl">
<div class="focusItem" tabindex="-2" style="transform: translateX(-50px)">
<div class="focusContent">B0</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-350px)">
<div class="focusContent">B1</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-650px)">
<div class="focusContent">B2</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-950px)">
<div class="focusContent">B3</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1250px)">
<div class="focusContent">B4</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1550px)">
<div class="focusContent">B5</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-1850px)">
<div class="focusContent">B6</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2150px)">
<div class="focusContent">B7</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2450px)">
<div class="focusContent">B8</div>
</div>
<div class="focusItem" tabindex="-2" style="transform: translateX(-2750px)">
<div class="focusContent">B9</div>
</div>
</div>
</div>
</body>
<script>
window.onload = function() {
document.getElementById("start").focus();
}
</script>
</html>