Loading...
I’m Yours by Jason Mraz: Guitar Chords and Lyrics - body {
margin: 0;
font-family: sans-serif;
}
.top-button-row,
.bottom-button-container {
display: flex;
justify-content: center;
gap: 10px;
flex-wrap: wrap;
padding: 15px;
}
.styled-button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
background-color: #333;
color: #fff;
border: 2px solid #fff;
border-radius: 4px;
text-align: center;
transition: background-color 0.2s ease, border 0.2s ease;
user-select: none;
}
.styled-button:hover {
background-color: #444;
}
.editable-button {
display: inline-flex;
align-items: center;
justify-content: center;
background-color: #333;
color: #fff;
border: 2px solid #fff;
border-radius: 4px;
padding: 10px 20px;
font-size: 16px;
text-align: center;
min-width: 80px;
user-select: none;
outline: none;
}
.editable-button:focus {
background-color: #444;
}
.lyrics-container {
column-gap: 40px;
max-width: 100%;
padding: 20px;
}
.lyrics {
white-space: pre-wrap;
font-family: monospace;
column-count: 1;
}
.two-columns .lyrics {
column-count: 2;
}
@media (max-width: 768px) {
.two-columns .lyrics {
column-count: 1;
}
}
#printPreviewContainer {
display: none;
}
#printPreview {
white-space: pre-wrap;
font-family: monospace;
column-count: 2;
column-gap: 40px;
line-height: 1.4;
}
@media print {
body * {
visibility: hidden !important;
height: 0 !important;
overflow: hidden !important;
}
#printPreviewContainer,
#printPreviewContainer * {
visibility: visible !important;
height: auto !important;
overflow: visible !important;
}
#printPreviewContainer {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding: 20px;
background-color: white;
box-sizing: border-box;
page-break-inside: avoid;
}
#printPreview {
text-align: left;
}
}
Loading...
Columns
Loading...
I'm Yours by Jason Mraz
Key: B major
Capo: 4th fret
[Intro]
G D Em C x2
[Verse]
G
Well, you done done me and you bet I felt it
D
I tried to be chill but you're so hot that I melted
Em
I fell right through the cracks,
C
Now I'm tryin' to get back
G
Before the cool done run out I'll be givin' it my bestest
D
And nothin's gonna stop me but divine intervention
Em
I reckon it's again my turn
C
To win some or learn some
[Chorus]
G D
But I won't hesitate
Em
No more, no more
C
It cannot wait, I'm yours
[Interlude]
G D Em C
[Verse]
G D
Well, open up your mind and see like me
Em
Open up your plans and damn you're free
Look into your heart and you'll find
C
Love love love love
G D
Listen to the music of the moment people dance and sing
Em
We're just one big family
C A7
And it's our godforsaken right to be loved loved loved loved loved
[Chorus]
G D
So, I won't hesitate
Em
No more, no more,
C
It cannot wait I'm sure
G D Em
There's no need to complicate our time is short
C
This is our fate, I'm yours
[Bridge]
G D
A-do you, do, do, do you,
Em
but do you, do you, do, do,
D
but do you want to come on?
C
Scooch on over closer, dear
A7
And I will nibble your ear
G
A-soo da ba ba ba ba bum
D Em
Whoa oh, oh oh oh oh oh
D C
Whoa oh oh oh oh, oh oh, oh oh oh oh oh
A7
Uh-huh, mmhmmm
[Verse]
G
I've been spendin' way too long checkin' my tongue in the mirror
D
and bendin' over backwards just to try to see it clearer
Em
But my breath fogged up the glass
C
And so I drew a new face and I laughed
G
I guess what I'd be sayin' is there ain't no better reason
D
To rid yourself of vanities and just go with the seasons
Em
It's what we aim to do
C
Our name is our virtue
[Chorus]
G D
But I won't hesitate
Em
No more, no more
C
It cannot wait, I'm yours
[Verse]
G D
Well, open up your mind and see like me
Em
Open up your plans and damn you're free
C
I look into your heart and you will find that the sky is yours
G
So please don't, please don't, please don't,
D
There's no need to complicate,
Em
Cause our time is short
C
This, this, this is our fate,
A7
I'm yooooooours
[Outro]
G
Brr da ba mmm da ba bo mmm day
D
Na ch doo, doo ch doo, doo ch doo doo mmm doo doo
Em C G
mmm mmm mmm mmm (Hey, hey) Oh, I'm yours, oh-oh, I'm yours
D
Oh-oh-oh-oh, whoa-oh-oh-oh
Em
Baby, do you believe I'm yours?
C
You best believe, you best believe I'm yours, hmm
Random
Print
11pt
let player;
let activeTrack = null;
const youtubeButton = document.getElementById('youtubeToggleButton');
const karaokeButton = document.getElementById('karaokeToggleButton');
const tracks = {
audio: 'hxTopOuj01k',
karaoke: 'kn8YiDSYcq4'
};
function onYouTubeIframeAPIReady() {
player = new YT.Player('youtube-player', {
height: '0',
width: '0',
videoId: tracks.audio,
playerVars: { autoplay: 0, controls: 0, playsinline: 1 },
events: {
'onReady': () => {
youtubeButton.textContent = "Audio";
karaokeButton.textContent = "Karaoke";
}
}
});
}
function togglePlayback(trackType, buttonId) {
const isSameTrack = activeTrack === trackType;
const isPlaying = player.getPlayerState() === YT.PlayerState.PLAYING;
if (!isSameTrack) {
activeTrack = trackType;
player.loadVideoById(tracks[trackType]);
youtubeButton.textContent = "Audio";
karaokeButton.textContent = "Karaoke";
document.getElementById(buttonId).textContent = "Stop";
} else {
if (isPlaying) {
player.pauseVideo();
document.getElementById(buttonId).textContent = trackType === 'audio' ? "Audio" : "Karaoke";
} else {
player.playVideo();
document.getElementById(buttonId).textContent = "Stop";
}
}
}
youtubeButton.onclick = () => togglePlayback('audio', 'youtubeToggleButton');
karaokeButton.onclick = () => togglePlayback('karaoke', 'karaokeToggleButton');
document.getElementById('toggleButton').onclick = () => {
document.getElementById('lyricsContainer').classList.toggle('two-columns');
};
function printLyrics() {
const fontSizeText = document.getElementById('fontSizeEditor').innerText.trim();
const fontSize = fontSizeText.match(/^\d+(pt|px|em|rem)$/i) ? fontSizeText : '11pt';
const lyricsHTML = document.getElementById('lyrics').innerHTML;
const preview = document.getElementById('printPreviewContainer');
const previewContent = document.getElementById('printPreview');
previewContent.innerHTML = `${lyricsHTML}`;
previewContent.style.fontSize = fontSize;
preview.style.display = 'block';
setTimeout(() => {
window.print();
preview.style.display = 'none';
}, 100);
}
Scroll
#adjustableWidget {
position: fixed;
bottom: 5px;
left: 50%;
transform: translateX(-50%);
background-color: #f0f0f0;
padding: 5px 8px;
border: 1px solid #ccc;
border-radius: 4px;
z-index: 99999;
font-size: 12px;
display: flex;
justify-content: center;
align-items: center;
gap: 5px;
}
#adjustInput {
width: 60px;
padding: 2px;
font-size: 12px;
}
#adjustNumber {
width: 40px;
padding: 2px;
font-size: 12px;
}
#startScrollButton {
padding: 4px 8px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
}
document.addEventListener("DOMContentLoaded", () => {
let isScrolling = false;
let animationFrameId = null;
let scrollRemainder = 0;
const adjustInput = document.getElementById("adjustInput");
const adjustNumber = document.getElementById("adjustNumber");
const startScrollButton = document.getElementById("startScrollButton");
const SPEED_OFFSET = 10;
const SPEED_FACTOR = 0.1;
function getAdjustedSpeed(rawValue) {
return (parseInt(rawValue) + SPEED_OFFSET) * SPEED_FACTOR;
}
// Initialize values
adjustInput.value = 50;
adjustNumber.value = 50;
let scrollSpeed = getAdjustedSpeed(50);
// Sync input changes
function updateSpeedFromInput(value) {
adjustInput.value = value;
adjustNumber.value = value;
scrollSpeed = getAdjustedSpeed(value);
}
adjustInput.addEventListener("input", (e) => updateSpeedFromInput(e.target.value));
adjustNumber.addEventListener("input", (e) => updateSpeedFromInput(e.target.value));
startScrollButton.addEventListener("click", () => {
if (!isScrolling) {
isScrolling = true;
startScrollButton.textContent = "Stop";
scrollStep();
} else {
stopScroll();
startScrollButton.textContent = "Scroll";
}
});
function scrollStep() {
if (!isScrolling) return;
const bottomReached = (window.innerHeight + window.scrollY) >= document.body.offsetHeight;
if (bottomReached) {
stopScroll();
startScrollButton.textContent = "Scroll";
return;
}
scrollRemainder += scrollSpeed;
let pixelsToScroll = Math.floor(scrollRemainder);
scrollRemainder -= pixelsToScroll;
if (pixelsToScroll === 0 && scrollSpeed > 0) {
pixelsToScroll = 1;
}
window.scrollBy(0, pixelsToScroll);
animationFrameId = requestAnimationFrame(scrollStep);
}
function stopScroll() {
isScrolling = false;
cancelAnimationFrame(animationFrameId);
scrollRemainder = 0;
}
window.addEventListener("scroll", () => {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
stopScroll();
startScrollButton.textContent = "Scroll";
}
});
});