Add border marker
This commit is contained in:
		
							parent
							
								
									e1679d94c8
								
							
						
					
					
						commit
						0b684bc42e
					
				| @ -1,11 +1,3 @@ | |||||||
| // class RSVPControlButton extends HTMLElement {
 |  | ||||||
| //     constructor() {
 |  | ||||||
| //         super()
 |  | ||||||
| //         const shadow = this.attachShadow({mode: 'open'})
 |  | ||||||
| //         const button = document.createElement()
 |  | ||||||
| //     }
 |  | ||||||
| // }
 |  | ||||||
| 
 |  | ||||||
| class RSVPControls extends HTMLElement { | class RSVPControls extends HTMLElement { | ||||||
|   constructor() { |   constructor() { | ||||||
|     super() |     super() | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import './rsvp-word.js' | import './rsvp-word.js' | ||||||
| import './rsvp-controls.js' | import './rsvp-controls.js' | ||||||
|  | import './rsvp-word-markers.js' | ||||||
| 
 | 
 | ||||||
| import { Chapter } from '../src/Chapter.js' | import { Chapter } from '../src/Chapter.js' | ||||||
| import { Player } from '../src/Player.js' | import { Player } from '../src/Player.js' | ||||||
| @ -8,10 +9,12 @@ class RSVPReader extends HTMLElement { | |||||||
|   constructor() { |   constructor() { | ||||||
|     super() |     super() | ||||||
|     const shadow = this.attachShadow({ mode: 'open' }) |     const shadow = this.attachShadow({ mode: 'open' }) | ||||||
|  |     const marker = document.createElement('rsvp-border-marker') | ||||||
|     const word = document.createElement('rsvp-word') |     const word = document.createElement('rsvp-word') | ||||||
|     const controls = document.createElement('rsvp-controls') |     const controls = document.createElement('rsvp-controls') | ||||||
| 
 | 
 | ||||||
|     shadow.appendChild(word) |     shadow.appendChild(marker) | ||||||
|  |     marker.appendChild(word) | ||||||
|     shadow.appendChild(controls) |     shadow.appendChild(controls) | ||||||
| 
 | 
 | ||||||
|     this._root = shadow |     this._root = shadow | ||||||
|  | |||||||
							
								
								
									
										44
									
								
								components/rsvp-word-markers.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								components/rsvp-word-markers.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | class RSVPPipeMarker extends HTMLElement { | ||||||
|  |   constructor() { | ||||||
|  |     super() | ||||||
|  |     const shadow = this.attachShadow({ mode: 'open' }) | ||||||
|  |     shadow.innerHTML = ` | ||||||
|  |       <style> | ||||||
|  |       :host {display: block} | ||||||
|  |       .marker { text-align: center } | ||||||
|  |       </style> | ||||||
|  |       <div class="marker">|</div> | ||||||
|  |       <slot></slot> | ||||||
|  |       <div class="marker">|</div> | ||||||
|  |     ` | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | class RSVPBorderMarker extends HTMLElement { | ||||||
|  |   constructor() { | ||||||
|  |     super() | ||||||
|  |     const shadow = this.attachShadow({ mode: 'open' }) | ||||||
|  |     shadow.innerHTML = ` | ||||||
|  |       <style> | ||||||
|  |       :host {display: block; margin: 5px 0;} | ||||||
|  |       .top, .bottom { display: flex;} | ||||||
|  |       .a {flex:1} .b {flex:1} | ||||||
|  |       .bottom { align-items: flex-end; } | ||||||
|  |       .side { background-color: black; height: 2px;} | ||||||
|  | 
 | ||||||
|  |       .center { background-color: black; height: 6px; width: 2px} | ||||||
|  |       </style> | ||||||
|  |       <div class="top"> | ||||||
|  |         <div class="side a"></div><div class="center"></div><div class="side b"></div> | ||||||
|  |       </div> | ||||||
|  |         <slot></slot> | ||||||
|  |       <div class="bottom"> | ||||||
|  |         <div class="side a"></div><div class="center"></div><div class="side b"></div> | ||||||
|  |       </div> | ||||||
|  |       <div class="marker"></div> | ||||||
|  |     ` | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | window.customElements.define('rsvp-pipe-marker', RSVPPipeMarker) | ||||||
|  | window.customElements.define('rsvp-border-marker', RSVPBorderMarker) | ||||||
| @ -16,7 +16,7 @@ class RSVPWord extends HTMLElement { | |||||||
|     suffix.setAttribute('class', 'suffix') |     suffix.setAttribute('class', 'suffix') | ||||||
| 
 | 
 | ||||||
|     style.textContent = |     style.textContent = | ||||||
|       '.word{display:flex}.pivot{color:red}.prefix,.suffix{flex:1}.prefix{text-align:right}' |       '.word{display:flex; font-size: 2.4em;}.pivot{color:red}.prefix{flex:1}.suffix{flex:1}.prefix{text-align:right}' | ||||||
| 
 | 
 | ||||||
|     word.appendChild(prefix) |     word.appendChild(prefix) | ||||||
|     word.appendChild(pivot) |     word.appendChild(pivot) | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| export class Player { | export class Player { | ||||||
|   constructor(interval = 100) { |   constructor(interval = 200) { | ||||||
|     this.intervalHandle = null |     this.intervalHandle = null | ||||||
|     this.interval = interval |     this.interval = interval | ||||||
|     this.subscribers = {} |     this.subscribers = {} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user