ULTIMATE COLOURFULL TOOLS

 <!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1" />

<title>Ultimate Colorful Text Tool 🌈</title>

<style>

  @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap');

  /* Reset */

  * {

    box-sizing: border-box;

  }

  body {

    margin: 0;

    font-family: 'Poppins', sans-serif;

    background: #0f0f23;

    color: #eee;

    min-height: 100vh;

    padding: 30px 15px;

    user-select: none;

  }

  h1 {

    text-align: center;

    font-weight: 800;

    font-size: 3rem;

    background: linear-gradient(45deg, #ff3cac, #784ba0, #2b86c5);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    margin-bottom: 50px;

    text-shadow: 0 0 10px #ff3cacaa;

  }

  .tool-container {

    background: #1e1e3f;

    border-radius: 20px;

    padding: 25px 30px 40px;

    margin: 0 auto 40px auto;

    max-width: 900px;

    box-shadow:

      0 0 12px #ff3cac88,

      0 0 24px #784ba088,

      0 0 40px #2b86c588;

    border: 3px solid transparent;

    transition: border-color 0.4s ease;

  }

  .tool-container:hover {

    border-color: #ff3cac;

  }

  .tool-header {

    font-weight: 700;

    font-size: 1.8rem;

    margin-bottom: 18px;

    background: linear-gradient(90deg, #ff3cac, #784ba0, #2b86c5);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    text-shadow: 0 0 6px #ff3cacbb;

  }

  textarea, input[type=text] {

    width: 100%;

    background: #121230;

    border: none;

    color: #eee;

    font-size: 1.15rem;

    font-family: 'Poppins', sans-serif;

    padding: 15px 20px;

    border-radius: 14px;

    box-shadow:

      inset 0 0 10px #2b86c522,

      inset 0 0 20px #784ba044;

    resize: vertical;

    min-height: 110px;

    transition: box-shadow 0.3s ease;

  }

  textarea:focus, input[type=text]:focus {

    outline: none;

    box-shadow:

      inset 0 0 12px #ff3cacaa,

      0 0 10px #ff3caccc;

  }

  button {

    background: linear-gradient(45deg, #ff3cac, #784ba0, #2b86c5);

    border: none;

    color: white;

    font-weight: 700;

    font-size: 1.1rem;

    padding: 12px 28px;

    border-radius: 30px;

    cursor: pointer;

    margin-right: 14px;

    box-shadow:

      0 0 12px #ff3cacbb,

      0 0 20px #784ba0bb;

    transition: background-position 0.5s ease, box-shadow 0.3s ease, transform 0.2s ease;

    background-size: 300% 300%;

    background-position: 0% 50%;

    user-select: none;

  }

  button:last-child {

    margin-right: 0;

  }

  button:hover {

    background-position: 100% 50%;

    box-shadow:

      0 0 18px #ff3cacee,

      0 0 30px #784ba0ee,

      0 0 40px #2b86c5ee;

    transform: scale(1.05);

  }

  button:disabled {

    background: #555566cc;

    box-shadow: none;

    cursor: not-allowed;

    transform: none;

  }

  .result {

    background: #121230;

    border-radius: 14px;

    padding: 20px 24px;

    min-height: 90px;

    font-size: 1.15rem;

    margin-top: 15px;

    white-space: pre-wrap;

    box-shadow:

      inset 0 0 10px #2b86c544;

    color: #ddd;

    font-weight: 500;

  }

  label {

    font-weight: 600;

    margin-bottom: 6px;

    display: block;

    font-size: 1.1rem;

  }

  /* Responsive */

  @media (max-width: 700px) {

    body {

      padding: 20px 12px;

    }

    h1 {

      font-size: 2.2rem;

      margin-bottom: 35px;

    }

    .tool-container {

      padding: 20px 18px 35px;

      margin-bottom: 35px;

    }

    button {

      margin-bottom: 12px;

      width: 100%;

      margin-right: 0;

    }

  }

</style>

</head>

<body>


<h1>Ultimate Colorful Text Tool 🌈</h1>


<div class="tool-container" id="plagiarism-tool">

  <div class="tool-header">Plagiarism Checker (Duplicate Sentence Detector)</div>

  <textarea id="plagiarism-input" placeholder="Paste your text here..."></textarea>

  <button onclick="checkPlagiarism()">Check Plagiarism</button>

  <div class="result" id="plagiarism-result">Results will appear here.</div>

  <button onclick="copyResult('plagiarism-result')">Copy Result</button>

  <button onclick="downloadResult('plagiarism-result', 'plagiarism-result.txt')">Download Result</button>

</div>


<div class="tool-container" id="spell-tool">

  <div class="tool-header">Spell Checker</div>

  <textarea id="spell-input" placeholder="Type or paste text to check spelling..."></textarea>

  <button onclick="checkSpelling()">Check Spelling</button>

  <div class="result" id="spell-result">Results will appear here.</div>

  <button onclick="copyResult('spell-result')">Copy Result</button>

  <button onclick="downloadResult('spell-result', 'spell-result.txt')">Download Result</button>

</div>


<div class="tool-container" id="speech-tool">

  <div class="tool-header">Speech to Text</div>

  <button id="start-speech-btn" onclick="startSpeech()">Start Speaking 🎤</button>

  <button id="stop-speech-btn" onclick="stopSpeech()" disabled>Stop</button>

  <textarea id="speech-output" placeholder="Your speech will appear here..." rows="5"></textarea>

  <button onclick="copyResult('speech-output')">Copy Result</button>

  <button onclick="downloadResult('speech-output', 'speech-output.txt')">Download Result</button>

</div>


<div class="tool-container" id="sentence-tool">

  <div class="tool-header">Sentence Check (Basic Grammar & Punctuation)</div>

  <textarea id="sentence-input" placeholder="Paste text to check sentences..."></textarea>

  <button onclick="checkSentence()">Check Sentences</button>

  <div class="result" id="sentence-result">Results will appear here.</div>

  <button onclick="copyResult('sentence-result')">Copy Result</button>

  <button onclick="downloadResult('sentence-result', 'sentence-result.txt')">Download Result</button>

</div>


<div class="tool-container" id="rewrite-tool">

  <div class="tool-header">Text Rewriter (Synonym Replacement)</div>

  <textarea id="rewrite-input" placeholder="Paste text to rewrite..."></textarea>

  <button onclick="rewriteText()">Rewrite Text</button>

  <div class="result" id="rewrite-result">Results will appear here.</div>

  <button onclick="copyResult('rewrite-result')">Copy Result</button>

  <button onclick="downloadResult('rewrite-result', 'rewrite-result.txt')">Download Result</button>

</div>


<div class="tool-container" id="wordcount-tool">

  <div class="tool-header">Word & Character Counter</div>

  <textarea id="wordcount-input" placeholder="Paste or type text here..."></textarea>

  <button onclick="countWords()">Count Words & Characters</button>

  <div class="result" id="wordcount-result">Results will appear here.</div>

  <button onclick="copyResult('wordcount-result')">Copy Result</button>

  <button onclick="downloadResult('wordcount-result', 'wordcount-result.txt')">Download Result</button>

</div>


<div class="tool-container" id="summarize-tool">

  <div class="tool-header">Text Summarizer (Basic)</div>

  <textarea id="summarize-input" placeholder="Paste text to summarize..."></textarea>

  <button onclick="summarizeText()">Summarize</button>

  <div class="result" id="summarize-result">Summary will appear here.</div>

  <button onclick="copyResult('summarize-result')">Copy Result</button>

  <button onclick="downloadResult('summarize-result', 'summary.txt')">Download Result</button>

</div>


<script>

  // Plagiarism Checker (duplicate sentence detection)

  function checkPlagiarism() {

    const text = document.getElementById('plagiarism-input').value.trim();

    const resultEl = document.getElementById('plagiarism-result');

    if (!text) {

      resultEl.textContent = 'Please enter some text.';

      return;

    }

    const sentences = text.match(/[^.!?]+[.!?]*/g) || [];

    const seen = new Set();

    let duplicates = [];

    sentences.forEach(s => {

      const trimmed = s.trim().toLowerCase();

      if (seen.has(trimmed) && !duplicates.includes(trimmed)) duplicates.push(trimmed);

      else seen.add(trimmed);

    });

    if (duplicates.length) {

      resultEl.textContent = `Possible duplicate sentences found:\n- ${duplicates.join('\n- ')}`;

    } else {

      resultEl.textContent = 'No duplicate sentences found.';

    }

  }


  // Simple Spell Checker (basic dictionary)

  const dictionary = new Set([

    "the","be","to","of","and","a","in","that","have","i","it","for","not","on","with","he",

    "as","you","do","at","this","but","his","by","from","they","we","say","her","she","or",

    "an","will","my","one","all","would","there","their","what","so","up","out","if","about",

    "who","get","which","go","me"

  ]);

  function checkSpelling() {

    const text = document.getElementById('spell-input').value.trim();

    const resultEl = document.getElementById('spell-result');

    if (!text) {

      resultEl.textContent = 'Please enter some text.';

      return;

    }

    const words = text.match(/\b[a-zA-Z']+\b/g) || [];

    const errors = [];

    words.forEach(w => {

      if (!dictionary.has(w.toLowerCase())) {

        errors.push(w);

      }

    });

    if (errors.length) {

      resultEl.textContent = `Possible misspelled words:\n- ${[...new Set(errors)].join('\n- ')}`;

    } else {

      resultEl.textContent = 'No spelling errors detected in basic dictionary.';

    }

  }


  // Speech to Text (Web Speech API)

  let recognition;

  if ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window) {

    const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;

    recognition = new SpeechRecognition();

    recognition.continuous = true;

    recognition.interimResults = true;

    recognition.lang = 'en-US';


    recognition.onresult = function(event) {

      let transcript = '';

      for(let i=event.resultIndex; i < event.results.length; i++) {

        transcript += event.results[i][0].transcript;

      }

      const speechOutput = document.getElementById('speech-output');

      speechOutput.value = transcript;

    };


    recognition.onerror = function(event) {

      alert('Speech recognition error: ' + event.error);

    };

  } else {

    document.getElementById('start-speech-btn').disabled = true;

    alert('Speech Recognition API not supported in this browser.');

  }


  function startSpeech() {

    if(recognition) {

      recognition.start();

      document.getElementById('start-speech-btn').disabled = true;

      document.getElementById('stop-speech-btn').disabled = false;

    }

  }

  function stopSpeech() {

    if(recognition) {

      recognition.stop();

      document.getElementById('start-speech-btn').disabled = false;

      document.getElementById('stop-speech-btn').disabled = true;

    }

  }


  // Sentence Check (basic grammar & punctuation)

  function checkSentence() {

    const text = document.getElementById('sentence-input').value.trim();

    const resultEl = document.getElementById('sentence-result');

    if (!text) {

      resultEl.textContent = 'Please enter some text.';

      return;

    }

    const sentences = text.match(/[^.!?]+[.!?]*/g) || [];

    let issues = [];

    sentences.forEach((s, i) => {

      const trimmed = s.trim();

      if (!/[.!?]$/.test(trimmed)) {

        issues.push(`Sentence ${i+1} might be missing ending punctuation.`);

      }

      if (!/^[A-Z]/.test(trimmed)) {

        issues.push(`Sentence ${i+1} does not start with a capital letter.`);

      }

      if (/\s{2,}/.test(trimmed)) {

        issues.push(`Sentence ${i+1} has multiple consecutive spaces.`);

      }

    });

    if (issues.length) {

      resultEl.textContent = 'Issues found:\n- ' + issues.join('\n- ');

    } else {

      resultEl.textContent = 'No obvious sentence issues found.';

    }

  }


  // Text Rewriter (synonym replacement)

  const synonyms = {

    quick: ['fast', 'speedy', 'swift'],

    happy: ['joyful', 'content', 'pleased'],

    sad: ['unhappy', 'sorrowful', 'downcast'],

    good: ['great', 'positive', 'excellent'],

    bad: ['poor', 'negative', 'unfavorable'],

    smart: ['intelligent', 'clever', 'bright'],

    big: ['large', 'huge', 'vast'],

    small: ['tiny', 'little', 'compact'],

    important: ['crucial', 'vital', 'significant']

  };

  function rewriteText() {

    const text = document.getElementById('rewrite-input').value.trim();

    const resultEl = document.getElementById('rewrite-result');

    if (!text) {

      resultEl.textContent = 'Please enter some text.';

      return;

    }

    const words = text.split(/\b/);

    const rewritten = words.map(w => {

      const lw = w.toLowerCase();

      if (synonyms[lw]) {

        const choices = synonyms[lw];

        const replacement = choices[Math.floor(Math.random() * choices.length)];

        if (w[0] === w[0].toUpperCase()) {

          return replacement.charAt(0).toUpperCase() + replacement.slice(1);

        } else {

          return replacement;

        }

      } else {

        return w;

      }

    });

    resultEl.textContent = rewritten.join


Ultimate Colorful Text Tool 🌈

Ultimate Colorful Text Tool 🌈

Plagiarism Checker (Duplicate Sentence Detector)
Results will appear here.
Spell Checker
Results will appear here.
Speech to Text
Sentence Check (Basic Grammar & Punctuation)
Results will appear here.
Text Rewriter (Synonym Replacement)
Results will appear here.
Word & Character Counter
Results will appear here.
Text Summarizer (Basic)
Summary will appear here.

Comments

Popular Posts