<!DOCTYPE html>
<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<head>
<meta content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=5' name='viewport'/>
<title>Text Transform | Change Your Text Styles</title>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<!-- Chrome, Firefox OS and Opera -->
<meta content='' name='theme-color'/>
<!-- Windows Phone -->
<meta content='' name='msapplication-navbutton-color'/>
<meta content='blogger' name='generator'/>
<link href='https://text-transform.blogspot.com/favicon.ico' rel='icon' type='image/x-icon'/>
<link href='https://text-transform.blogspot.com/' rel='canonical'/>
<link rel="alternate" type="application/atom+xml" title="Text Transform | Change Your Text Styles - Atom" href="https://text-transform.blogspot.com/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Text Transform | Change Your Text Styles - RSS" href="https://text-transform.blogspot.com/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="Text Transform | Change Your Text Styles - Atom" href="https://draft.blogger.com/feeds/5498421570986330811/posts/default" />
<link rel="me" href="https://draft.blogger.com/profile/14039607161500889724" />
<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]-->
<meta content='https://text-transform.blogspot.com/' property='og:url'/>
<meta content='Text Transform | Change Your Text Styles' property='og:title'/>
<meta content='' property='og:description'/>
<!-- FIX 4: ACCESSIBILITY & COLOR RATIO Using strict Slate-950 for main text and Slate-700 for muted text to ensure WCAG AA compliance. No low-contrast grays. -->
<style id='page-skin-1' type='text/css'><!--
/* --- VARIABLES --- */
:root {
--font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
/* Accessibility: High Contrast Colors */
--color-bg: #ffffff;
--color-bg-alt: #f8fafc; /* Slate 50 */
--color-text-main: #020617; /* Slate 950 - Absolute readability */
--color-text-muted: #334155; /* Slate 700 - Darker than standard gray */
--color-primary: #2563eb; /* Blue 600 */
--color-primary-hover: #1d4ed8; /* Blue 700 */
--color-border: #cbd5e1; /* Slate 300 */
--container-width: 1100px;
--header-height: 70px;
--gap: 2rem;
}
/* --- RESET & BASE --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: var(--font-body);
background-color: var(--color-bg-alt);
color: var(--color-text-main);
line-height: 1.6;
font-size: 18px; /* Larger base font for readability */
}
a { text-decoration: none; color: var(--color-primary); transition: color 0.2s; }
a:hover { color: var(--color-primary-hover); text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
/* --- LAYOUT --- */
.container {
max-width: var(--container-width);
margin: 0 auto;
padding: 0 1.5rem;
}
/* Skip Link for Accessibility */
.skip-link {
position: absolute; top: -100px; left: 0; background: var(--color-primary); color: white; padding: 10px; z-index: 100;
}
.skip-link:focus { top: 0; }
/* --- HEADER --- */
.site-header {
background: var(--color-bg);
border-bottom: 1px solid var(--color-border);
height: var(--header-height);
display: flex;
align-items: center;
position: sticky;
top: 0;
z-index: 50;
}
.header-inner { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.header-title a {
font-size: 1.5rem;
font-weight: 800;
color: var(--color-text-main);
text-decoration: none;
}
/* --- MAIN GRID --- */
.main-wrapper {
padding: 3rem 0;
display: grid;
grid-template-columns: 1fr;
gap: 3rem;
}
@media (min-width: 768px) {
.main-wrapper {
grid-template-columns: 2fr 1fr; /* Blog 2/3, Sidebar 1/3 */
}
}
/* --- TEXT TRANSFORM TOOL (Enhanced Design) --- */
.tool-section {
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: 12px; /* Softer corners */
padding: 2.5rem;
margin-bottom: 3rem;
grid-column: 1 / -1;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.025); /* Elegant shadow */
}
@media (min-width: 768px) {
.tool-section { grid-column: 1 / 2; }
}
.tool-header {
margin-bottom: 1.5rem;
font-size: 1.8rem;
font-weight: 800;
color: var(--color-text-main);
text-align: center;
letter-spacing: -0.025em;
}
.tool-textarea {
width: 100%;
height: 250px; /* Taller for better usability */
padding: 1.25rem;
border: 2px solid var(--color-border);
border-radius: 8px;
font-family: var(--font-body);
font-size: 1.125rem;
margin-bottom: 1.5rem;
resize: vertical;
color: var(--color-text-main);
background: #ffffff;
transition: all 0.2s ease;
line-height: 1.6;
}
.tool-textarea:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1); /* Nice focus ring */
}
/* Button Grid for Transforms */
.tool-controls-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: 0.75rem;
margin-bottom: 1.5rem;
}
.btn-tool {
background: #ffffff;
border: 1px solid var(--color-border);
color: var(--color-text-main);
padding: 0.8rem 1rem;
border-radius: 8px;
cursor: pointer;
font-weight: 600;
font-size: 0.95rem;
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.btn-tool:hover {
background: var(--color-bg-alt);
border-color: var(--color-text-muted);
transform: translateY(-2px); /* Lift effect */
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.btn-tool:active { transform: translateY(0); }
/* Primary Action Bar (Copy/Clear) */
.tool-actions-bar {
display: flex;
gap: 1rem;
border-top: 1px solid var(--color-border);
padding-top: 1.5rem;
margin-top: 0.5rem;
}
.btn-tool.primary {
background: var(--color-primary);
color: white;
border-color: var(--color-primary);
flex: 3; /* Larger Copy Button */
font-size: 1.1rem;
padding: 1rem;
}
.btn-tool.primary:hover {
background: var(--color-primary-hover);
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3); /* Glow effect */
}
.btn-tool.clear {
color: #ef4444;
border-color: #fecaca;
background: #fff;
flex: 1; /* Smaller Clear Button */
}
.btn-tool.clear:hover { background: #fef2f2; border-color: #ef4444; }
/* Stats Dashboard */
.tool-stats {
margin-top: 1.5rem;
display: flex;
gap: 1rem;
justify-content: space-around;
background: var(--color-bg-alt);
padding: 1rem;
border-radius: 8px;
flex-wrap: wrap;
}
.stat-item {
display: flex;
flex-direction: column;
align-items: center;
min-width: 80px;
}
.stat-value {
font-size: 1.25rem;
font-weight: 800;
color: var(--color-primary);
line-height: 1;
margin-bottom: 0.25rem;
}
.stat-label {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-text-muted);
font-weight: 600;
}
/* --- POST CARD (Grid for Index) --- */
.blog-posts {
display: grid;
gap: 2.5rem;
}
.post-card {
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: 8px;
overflow: hidden;
display: flex;
flex-direction: column;
}
/* FIX 3: CLS - Aspect Ratio Wrapper
Forces browser to reserve 16:9 space immediately */
.post-image-wrap {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
background-color: #e2e8f0; /* Placeholder color while loading */
overflow: hidden;
}
.post-image-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
}
.post-content { padding: 1.5rem; }
.post-title {
font-size: 1.5rem;
margin-bottom: 0.75rem;
font-weight: 700;
line-height: 1.3;
}
.post-title a { color: var(--color-text-main); text-decoration: none; }
.post-title a:hover { color: var(--color-primary); }
.post-snippet {
color: var(--color-text-muted);
font-size: 1rem;
margin-bottom: 1.25rem;
}
.post-meta {
font-size: 0.875rem;
color: var(--color-text-muted);
font-weight: 500;
}
/* --- SINGLE POST --- */
.post-body {
background: var(--color-bg);
padding: 2rem;
border-radius: 8px;
border: 1px solid var(--color-border);
}
.post-body h1, .post-body h2, .post-body h3 { margin: 1.5rem 0 1rem; color: var(--color-text-main); }
.post-body p { margin-bottom: 1.25rem; font-size: 1.125rem; }
/* --- FOOTER --- */
.site-footer {
background: var(--color-text-main);
color: white;
padding: 3rem 0;
margin-top: 4rem;
text-align: center;
}
.site-footer a { color: #93c5fd; }
/* --- UTILITIES --- */
.btn {
display: inline-block;
background: var(--color-primary);
color: white;
padding: 0.6rem 1.2rem;
border-radius: 6px;
font-weight: 600;
text-decoration: none;
}
.btn:hover { background: var(--color-primary-hover); text-decoration: none; color: white; }
--></style>
<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
<meta name='google-adsense-platform-domain' content='blogspot.com'/>
</head>
<body>
<!-- Accessibility Skip Link -->
<a class='skip-link' href='#main-content'>Skip to content</a>
<!-- Header -->
<header class='site-header'>
<div class='container header-inner'>
<div class='header-title'>
<div class='section' id='header'><div class='widget Header' data-version='2' id='Header1'>
<h1>
<a href='https://text-transform.blogspot.com/'>Text Transform | Change Your Text Styles</a>
</h1>
</div></div>
</div>
<!-- Add Navigation Widget Here if needed -->
</div>
</header>
<div class='container main-wrapper'>
<!-- Text Transform Tool (Only on Homepage) -->
<section class='tool-section'>
<h2 class='tool-header'>Text Transform Tool</h2>
<textarea class='tool-textarea' id='inputText' oninput='updateStats()' placeholder='Type or paste your text here to begin transformation...'></textarea>
<!-- Transformation Buttons Grid -->
<div class='tool-controls-grid'>
<button class='btn-tool' onclick='transformText("upper")' title='Convert to Uppercase'>UPPER CASE</button>
<button class='btn-tool' onclick='transformText("lower")' title='Convert to Lowercase'>lower case</button>
<button class='btn-tool' onclick='transformText("title")' title='Capitalize First Letter of Each Word'>Title Case</button>
<button class='btn-tool' onclick='transformText("sentence")' title='Capitalize first letter of sentences'>Sentence case</button>
<button class='btn-tool' onclick='transformText("alternating")' title='AlTeRnAtInG cAsE'>aLtErNaTiNg</button>
<button class='btn-tool' onclick='transformText("reverse")' title='Reverse the text'>esreveR</button>
</div>
<!-- Stats Dashboard -->
<div class='tool-stats'>
<div class='stat-item'>
<span class='stat-value' id='charCount'>0</span>
<span class='stat-label'>Characters</span>
</div>
<div class='stat-item'>
<span class='stat-value' id='wordCount'>0</span>
<span class='stat-label'>Words</span>
</div>
<div class='stat-item'>
<span class='stat-value' id='lineCount'>0</span>
<span class='stat-label'>Lines</span>
</div>
</div>
<!-- Primary Action Bar (Copy & Clear) -->
<div class='tool-actions-bar'>
<button class='btn-tool clear' onclick='clearText()' title='Clear all text'>Clear Text</button>
<button class='btn-tool primary' onclick='copyText()' title='Copy to Clipboard'>Copy Text</button>
</div>
</section>
<!-- Main Content -->
<main id='main-content' role='main'>
<div class='section' id='main'><div class='widget Blog' data-version='2' id='Blog1'>
<div class='blog-posts'>
</div>
<div class='blog-pager'>
</div>
</div></div>
</main>
<!-- Sidebar -->
<aside id='sidebar'>
<div class='no-items section' id='sidebar-right'></div>
</aside>
</div>
<footer class='site-footer'>
<div class='container'>
<!-- FIX 1: XML Parsing - Use numeric entity © instead of named © -->
<p>Copyright © <span id='current-year'></span>
Text Transform | Change Your Text Styles. All rights reserved.</p>
</div>
</footer>
<!-- FIX 1 & LCP: Scripts wrapped in CDATA to allow strict JS syntax -->
<script>
//<![CDATA[
document.getElementById('current-year').textContent = new Date().getFullYear();
// --- TEXT TOOL LOGIC ---
function transformText(type) {
const textarea = document.getElementById('inputText');
if (!textarea) return;
let text = textarea.value;
switch(type) {
case 'upper':
text = text.toUpperCase();
break;
case 'lower':
text = text.toLowerCase();
break;
case 'title':
text = text.toLowerCase().split(' ').map(function(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
}).join(' ');
break;
case 'sentence':
// Uppercase start of string and letters after . ! ?
text = text.toLowerCase().replace(/(^\s*\w|[\.\!\?]\s*\w)/g, function(c) {
return c.toUpperCase();
});
break;
case 'alternating':
let altText = '';
for (let i = 0; i < text.length; i++) {
altText += i % 2 === 0 ? text[i].toLowerCase() : text[i].toUpperCase();
}
text = altText;
break;
case 'reverse':
text = text.split('').reverse().join('');
break;
}
textarea.value = text;
updateStats();
}
function copyText() {
const textarea = document.getElementById('inputText');
if (!textarea) return;
textarea.select();
document.execCommand('copy');
const btn = event.target;
const originalText = btn.innerText;
btn.innerText = 'Copied!';
setTimeout(function() { btn.innerText = originalText; }, 2000);
}
function clearText() {
const textarea = document.getElementById('inputText');
if (textarea) {
textarea.value = '';
updateStats();
textarea.focus();
}
}
function updateStats() {
const textarea = document.getElementById('inputText');
if (!textarea) return;
const text = textarea.value;
// Char count
document.getElementById('charCount').innerText = text.length;
// Word count
const words = text.trim().split(/\s+/);
const wordCount = text.trim() === '' ? 0 : words.length;
document.getElementById('wordCount').innerText = wordCount;
// Line count
const lines = text.split(/\r\n|\r|\n/);
const lineCount = text === '' ? 0 : lines.length;
document.getElementById('lineCount').innerText = lineCount;
}
//]]>
</script>
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1581542668-widgets.js"></script>
<script type='text/javascript'>
window['__wavt'] = 'AOuZoY6gE0FcqVXMgz0hAEb3GCpLlX0CTA:1765420155337';_WidgetManager._Init('//draft.blogger.com/rearrange?blogID\x3d5498421570986330811','//text-transform.blogspot.com/','5498421570986330811');
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '5498421570986330811', 'title': 'Text Transform | Change Your Text Styles', 'url': 'https://text-transform.blogspot.com/', 'canonicalUrl': 'https://text-transform.blogspot.com/', 'homepageUrl': 'https://text-transform.blogspot.com/', 'searchUrl': 'https://text-transform.blogspot.com/search', 'canonicalHomepageUrl': 'https://text-transform.blogspot.com/', 'blogspotFaviconUrl': 'https://text-transform.blogspot.com/favicon.ico', 'bloggerUrl': 'https://draft.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Text Transform | Change Your Text Styles - Atom\x22 href\x3d\x22https://text-transform.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Text Transform | Change Your Text Styles - RSS\x22 href\x3d\x22https://text-transform.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Text Transform | Change Your Text Styles - Atom\x22 href\x3d\x22https://draft.blogger.com/feeds/5498421570986330811/posts/default\x22 /\x3e\n', 'meTag': '\x3clink rel\x3d\x22me\x22 href\x3d\x22https://draft.blogger.com/profile/14039607161500889724\x22 /\x3e\n', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'isGoogleEverywhereLinkTooltipEnabled': true, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/ce4a0ba1ae8a0475', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'pageName': '', 'pageTitle': 'Text Transform | Change Your Text Styles'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Text Transform | Change Your Text Styles', 'description': '', 'url': 'https://text-transform.blogspot.com/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': true, 'isArchive': false, 'isLabelSearch': false}}, {'name': 'widgets', 'data': [{'title': 'Text Transform | Change Your Text Styles (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'main', 'id': 'Blog1', 'posts': [], 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'author', 'label': 'Posted by'}, {'name': 'timestamp', 'label': 'at'}, {'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}, {'name': 'share', 'label': ''}]}, {'regionName': 'footer2', 'items': [{'name': 'labels', 'label': 'Labels:'}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'author', 'label': 'Posted by'}, {'name': 'timestamp', 'label': 'at'}, {'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}, {'name': 'share', 'label': ''}, {'name': 'labels', 'label': 'Labels:'}, {'name': 'location', 'label': 'Location:'}]}]}]);
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'navMessage': 'No posts.', 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/2485970545-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull'));
</script>
</body>
</html>