Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Lay Theme Forum

  1. Home
  2. Need Custom Coding for Lay Theme? Find 3rd Party Developers here.
  3. Cursor invert color (black/white text)

Cursor invert color (black/white text)

Scheduled Pinned Locked Moved Need Custom Coding for Lay Theme? Find 3rd Party Developers here.
20 Posts 8 Posters 2.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    chloe543268
    wrote on last edited by
    #1

    Hi, I custom my cursor to have a circle, you can see it on my website. I used this code :

    body{
    cursor: url(https://chloegrienenberger.com/wp-content/uploads/2020/11/PERSONAL-IDENTITY-10.png) 2 6, auto;
    }
    a {
    cursor:
    url(https://chloegrienenberger.com/wp-content/uploads/2020/11/PERSONAL-IDENTITY-11.png) 2 6, auto !important;
    }

    I'd like to have an inversion of color when it hovers over a text. Here's an example . I'll search on other forums and I found some codes but it didn't work. Do you have any ideas how to do it ?

    Many thanks in advance!

    1 Reply Last reply
    0
    • RichardR Offline
      RichardR Offline
      Richard
      Global Moderator
      wrote on last edited by Richard
      #2

      Dear @chloe543268

      You have something working when you hover over a link:

      a {
      cursor:
      url(https://chloegrienenberger.com/wp-content/uploads/2020/11/PERSONAL-IDENTITY-11.png) 2 6, auto !important;
      }
      

      The <a> tag is for links so when hovering over 'a' we get this change but we also need to specify other types of elements on your page.

      Try adding this to work with all 'span' elements too:

      span {
      cursor:
      url(https://chloegrienenberger.com/wp-content/uploads/2020/11/PERSONAL-IDENTITY-11.png) 2 6, auto !important;
      }
      

      And let me know what you think? :)

      Best wishes, thank you for using Lay Theme and have a wonderful day!

      Richard

      1 Reply Last reply
      0
      • C Offline
        C Offline
        chloe543268
        wrote on last edited by
        #3

        @Richard-Keith said in Cursor invert color (black/white text):

        span {
        cursor:
        url(https://chloegrienenberger.com/wp-content/uploads/2020/11/PERSONAL-IDENTITY-11.png) 2 6, auto !important;
        }

        Hi Richard, thank you for your feedback.

        I showed you the code that I used while waiting to find a solution to do as on the site. I understood what you are proposing to me to do but I would like to try to do as on this site. Currently my hover is based on two images, but I think to have the color inversion on the text it must be a coded geometric shape and not an image?

        It may be too complex to do or explain ... I still show you the images it is really the cursor hover which changes the color of the elements below.

        thank you so much!Sans titre.png AA.png

        1 Reply Last reply
        0
        • RichardR Offline
          RichardR Offline
          Richard
          Global Moderator
          wrote on last edited by
          #4

          Dear @chloe543268

          There are ways to 'invert' colours on hover:

          https://davidwalsh.name/invert-colors-css

          https://davidwalsh.name/demo/invert-colors-css.php

          Is that what your were after when you referred to it being an image? :)

          Best
          Richard

          1 Reply Last reply
          0
          • C Offline
            C Offline
            chloe543268
            wrote on last edited by
            #5

            Hi Richard, yes exactly ! But the color inversion must be done only inside the cursor shape (a circle). As in this example : https://centralstudio.ch/

            If you can help me to do it (if it's not too complicated) it would be amazing!
            Thank you

            1 Reply Last reply
            0
            • RichardR Offline
              RichardR Offline
              Richard
              Global Moderator
              wrote on last edited by Richard
              #6

              Dear @chloe543268

              Happy to help.
              This was fun to look into, its a nice trick they have done :)

              So its actually not a Cursor in the general sense - its an element ( box ) that moves in place of the cursor:

              You will need to add the following code into 'Lay -Options - Custom CSS & HTML'

              At the top of the page in 'Custom CSS':

              .pointer {
                  cursor: none;
                  background-color: #fff;
                  position: fixed;
                  text-align: center;
                  width: 52px;
                  height: 52px;
                  z-index: 1000;
                  transform: translate(-50%, -50%);
                  pointer-events: none;
                  mix-blend-mode: difference;
                  overflow: hidden;
                  border-radius: 50%;
              }
              

              NOTE: this 'background-color: #fff;' will be your starting colour so if your webpage has a black background you will see it but with a white background it will blend in. - you can change it to suit your needs

              Secondly in the ' Custom <head> content' add the following:

              <script>
              window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                  
                jQuery("body").append('<div class="pointer"></div>');
                  jQuery("body").on("mousemove", function(e) {
              	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
              	
              });
              
                });
              </script>
              

              Remember to save at the bottom of the page and then have a look at your Webpage.

              Its a cool effect, hope this helps and have a wonderful day. Let me know how you go! :)

              Best
              Richard

              X A 3 Replies Last reply
              1
              • RichardR Richard

                Dear @chloe543268

                Happy to help.
                This was fun to look into, its a nice trick they have done :)

                So its actually not a Cursor in the general sense - its an element ( box ) that moves in place of the cursor:

                You will need to add the following code into 'Lay -Options - Custom CSS & HTML'

                At the top of the page in 'Custom CSS':

                .pointer {
                    cursor: none;
                    background-color: #fff;
                    position: fixed;
                    text-align: center;
                    width: 52px;
                    height: 52px;
                    z-index: 1000;
                    transform: translate(-50%, -50%);
                    pointer-events: none;
                    mix-blend-mode: difference;
                    overflow: hidden;
                    border-radius: 50%;
                }
                

                NOTE: this 'background-color: #fff;' will be your starting colour so if your webpage has a black background you will see it but with a white background it will blend in. - you can change it to suit your needs

                Secondly in the ' Custom <head> content' add the following:

                <script>
                window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                    
                  jQuery("body").append('<div class="pointer"></div>');
                    jQuery("body").on("mousemove", function(e) {
                	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                	
                });
                
                  });
                </script>
                

                Remember to save at the bottom of the page and then have a look at your Webpage.

                Its a cool effect, hope this helps and have a wonderful day. Let me know how you go! :)

                Best
                Richard

                X Offline
                X Offline
                XLD
                wrote on last edited by
                #7
                This post is deleted!
                1 Reply Last reply
                0
                • RichardR Richard

                  Dear @chloe543268

                  Happy to help.
                  This was fun to look into, its a nice trick they have done :)

                  So its actually not a Cursor in the general sense - its an element ( box ) that moves in place of the cursor:

                  You will need to add the following code into 'Lay -Options - Custom CSS & HTML'

                  At the top of the page in 'Custom CSS':

                  .pointer {
                      cursor: none;
                      background-color: #fff;
                      position: fixed;
                      text-align: center;
                      width: 52px;
                      height: 52px;
                      z-index: 1000;
                      transform: translate(-50%, -50%);
                      pointer-events: none;
                      mix-blend-mode: difference;
                      overflow: hidden;
                      border-radius: 50%;
                  }
                  

                  NOTE: this 'background-color: #fff;' will be your starting colour so if your webpage has a black background you will see it but with a white background it will blend in. - you can change it to suit your needs

                  Secondly in the ' Custom <head> content' add the following:

                  <script>
                  window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                      
                    jQuery("body").append('<div class="pointer"></div>');
                      jQuery("body").on("mousemove", function(e) {
                  	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                  	
                  });
                  
                    });
                  </script>
                  

                  Remember to save at the bottom of the page and then have a look at your Webpage.

                  Its a cool effect, hope this helps and have a wonderful day. Let me know how you go! :)

                  Best
                  Richard

                  X Offline
                  X Offline
                  XLD
                  wrote on last edited by
                  #8

                  Re: Cursor invert color (black/white text)

                  Dear @Richard-Keith

                  I love this – thank you so much…

                  Two things:

                  (01)
                  The cursor (element box) blends in perfectly on a white background page. But when I navigate to a black background page, the mix-blend-mode only works after a manual browser refresh.

                  Can you help?

                  (02)
                  The default "arrow cursor" is still visible above the new custom cursor. Any idea why?

                  Many thanks in advance!

                  L 1 Reply Last reply
                  0
                  • RichardR Offline
                    RichardR Offline
                    Richard
                    Global Moderator
                    wrote on last edited by
                    #9

                    Hey :) @XLD

                    Could you post a link to your website? :)

                    If the question is in regards to when the cursor hits the edge of the browser and reverts back to standard - that is not a Lay Theme issue - this is a browser thing that is out of my hands :(

                    Best
                    Richard

                    1 Reply Last reply
                    0
                    • E Offline
                      E Offline
                      evey_k
                      wrote on last edited by
                      #10
                      This post is deleted!
                      1 Reply Last reply
                      0
                      • E Offline
                        E Offline
                        evey_k
                        wrote on last edited by evey_k
                        #11
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • RichardR Richard

                          Dear @chloe543268

                          Happy to help.
                          This was fun to look into, its a nice trick they have done :)

                          So its actually not a Cursor in the general sense - its an element ( box ) that moves in place of the cursor:

                          You will need to add the following code into 'Lay -Options - Custom CSS & HTML'

                          At the top of the page in 'Custom CSS':

                          .pointer {
                              cursor: none;
                              background-color: #fff;
                              position: fixed;
                              text-align: center;
                              width: 52px;
                              height: 52px;
                              z-index: 1000;
                              transform: translate(-50%, -50%);
                              pointer-events: none;
                              mix-blend-mode: difference;
                              overflow: hidden;
                              border-radius: 50%;
                          }
                          

                          NOTE: this 'background-color: #fff;' will be your starting colour so if your webpage has a black background you will see it but with a white background it will blend in. - you can change it to suit your needs

                          Secondly in the ' Custom <head> content' add the following:

                          <script>
                          window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                              
                            jQuery("body").append('<div class="pointer"></div>');
                              jQuery("body").on("mousemove", function(e) {
                          	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                          	
                          });
                          
                            });
                          </script>
                          

                          Remember to save at the bottom of the page and then have a look at your Webpage.

                          Its a cool effect, hope this helps and have a wonderful day. Let me know how you go! :)

                          Best
                          Richard

                          A Offline
                          A Offline
                          alberto_califano
                          wrote on last edited by
                          #12

                          @Richard Hello, I wanted to have a cursor with mix blend mode and I was able to do it by using the code written here.

                          The only problem is that when I go from a page to another it stop to work, and the cursor become invisible.

                          Does anyone have any ideas on why that happen?

                          Many thanks,
                          Alberto

                          1 Reply Last reply
                          0
                          • arminunruhA Offline
                            arminunruhA Offline
                            arminunruh
                            Global Moderator
                            wrote on last edited by
                            #13

                            yea this code:

                            <script>
                            window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                                
                              jQuery("body").append('<div class="pointer"></div>');
                                jQuery("body").on("mousemove", function(e) {
                            	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                            });
                            
                              });
                            </script>
                            

                            its wrong, because it adds a new pointer div everytime you go to a new page ^^

                            just do it like this instead:

                            jQuery(document).ready(function(){
                                jQuery("body").append('<div class="pointer"></div>');
                                jQuery("body").on("mousemove", function(e) {
                                  jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                                });
                            })
                            
                            A 1 Reply Last reply
                            0
                            • arminunruhA arminunruh

                              yea this code:

                              <script>
                              window.laytheme.on("newpageshown", function(layoutObj, type, obj){
                                  
                                jQuery("body").append('<div class="pointer"></div>');
                                  jQuery("body").on("mousemove", function(e) {
                              	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                              });
                              
                                });
                              </script>
                              

                              its wrong, because it adds a new pointer div everytime you go to a new page ^^

                              just do it like this instead:

                              jQuery(document).ready(function(){
                                  jQuery("body").append('<div class="pointer"></div>');
                                  jQuery("body").on("mousemove", function(e) {
                                    jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                                  });
                              })
                              
                              A Offline
                              A Offline
                              alberto_califano
                              wrote on last edited by
                              #14

                              @arminunruh Thank you so much! It works perfectly now.

                              1 Reply Last reply
                              0
                              • X XLD

                                Re: Cursor invert color (black/white text)

                                Dear @Richard-Keith

                                I love this – thank you so much…

                                Two things:

                                (01)
                                The cursor (element box) blends in perfectly on a white background page. But when I navigate to a black background page, the mix-blend-mode only works after a manual browser refresh.

                                Can you help?

                                (02)
                                The default "arrow cursor" is still visible above the new custom cursor. Any idea why?

                                Many thanks in advance!

                                L Offline
                                L Offline
                                LenaW
                                wrote on last edited by
                                #15

                                @XLD @Richard thanks for having this function explained, I bump into the same thing of also having the default "arrow cursor" still visible. How did you did you solve this in the end?
                                Many Thanks!
                                https://lenawinterink.com/category/test-work-category/

                                1 Reply Last reply
                                0
                                • arminunruhA Offline
                                  arminunruhA Offline
                                  arminunruh
                                  Global Moderator
                                  wrote on last edited by
                                  #16
                                  *, a{
                                  cursor: none!important
                                  }
                                  

                                  https://developer.mozilla.org/en-US/docs/Web/CSS/cursor

                                  maybe this

                                  1 Reply Last reply
                                  0
                                  • arminunruhA Offline
                                    arminunruhA Offline
                                    arminunruh
                                    Global Moderator
                                    wrote on last edited by
                                    #17

                                    ur website runs so fast wow even here in brazil. which webhost did you get or which caching plugin do you use?

                                    1 Reply Last reply
                                    0
                                    • K Offline
                                      K Offline
                                      KW1
                                      wrote on last edited by
                                      #18

                                      Thank you for this topic and the explanations. One question: How do I manage to use the same effect, but use a customized .svg as shape? I'm stuck at the moment...

                                      1 Reply Last reply
                                      0
                                      • arminunruhA Offline
                                        arminunruhA Offline
                                        arminunruh
                                        Global Moderator
                                        wrote on last edited by
                                        #19

                                        Ok so first off, if anyone just wants a inverted cursor, i think this should be the correct code:

                                        In "Custom CSS":

                                        *{
                                            cursor: none!important;
                                        }
                                        .pointer {
                                            cursor: none;
                                            background-color: #fff;
                                            position: fixed;
                                            text-align: center;
                                            width: 52px;
                                            height: 52px;
                                            z-index: 1000;
                                            transform: translate(-50%, -50%);
                                            pointer-events: none;
                                            mix-blend-mode: difference;
                                            overflow: hidden;
                                            border-radius: 50%;
                                        }
                                        

                                        in HTML at bottom:

                                        <script>
                                        jQuery("body").append('<div class="pointer"></div>');
                                        jQuery("body").on("mousemove", function(e) {
                                        	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                                        });
                                        </script>
                                        

                                        previous code was using newpageshown to add the pointer div, but then it means it adds a new one every time you navigate on the page, thats not needed

                                        1 Reply Last reply
                                        0
                                        • arminunruhA Offline
                                          arminunruhA Offline
                                          arminunruh
                                          Global Moderator
                                          wrote on last edited by
                                          #20

                                          to use a svg image, use https://developer.mozilla.org/en-US/docs/Web/CSS/background-image

                                          in HTML at bottom:

                                          <script>
                                          jQuery("body").append('<div class="pointer"></div>');
                                          jQuery("body").on("mousemove", function(e) {
                                          	jQuery(".pointer").css({ top: e.clientY + "px", left: e.clientX + "px" });
                                          });
                                          </script>
                                          

                                          In "Custom CSS":

                                          *{
                                              cursor: none!important;
                                          }
                                          .pointer {
                                              cursor: none;
                                              position: fixed;
                                              text-align: center;
                                              width: 52px;
                                              height: 52px;
                                              z-index: 1000;
                                              transform: translate(-50%, -50%);
                                              pointer-events: none;
                                              mix-blend-mode: difference;
                                              overflow: hidden;
                                              border-radius: 50%;
                                              background-image: url("http://localhost:10020/wp-content/uploads/2024/09/close-button.svg");
                                              background-position: center;
                                              background-repeat: no-repeat;
                                          }
                                          

                                          this is the part u change:
                                          background-image: url("http://localhost:10020/wp-content/uploads/2024/09/close-button.svg");

                                          get the url from wp-admin media library, when u click on an image u get File URL:

                                          Screenshot 2025-02-19 at 09.05.14.png

                                          1 Reply Last reply
                                          0
                                          • arminunruhA arminunruh referenced this topic on
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          I also code custom websites or custom Lay features.
                                          💿 Email me here: 💿
                                          info@laytheme.com

                                          Before you post:
                                          1. When using a WordPress Cache plugin, disable it or clear your cache.
                                          2. Update Lay Theme and all Lay Theme Addons
                                          3. Disable all Plugins
                                          4. Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"

                                          This often solves issues you might run into

                                          When you post:
                                          1. Post a link to where the problem is
                                          2. Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
                                          3. If the problem is difficult to explain, post screenshots / link to a video to explain it
                                          Online Users
                                          N
                                          njbas
                                          Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com
                                          laytheme.com
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Search