Portal 2 custom cursor
Grab the Portal 2 Soft cute cursor - a free custom cursor pack for Portal fans.
Default navigation pointer
Used for clickable elements
Hover over each side to preview both cursor styles in real-time.
Portal 2 Soft Custom Cursor Pack
Frame your pointer with Portal 2 Soft: a bold cute cursor packed with test chamber charm. Install this free custom cursor in Chrome or Edge, or set it on Windows 10/11 with the Custom Cursor app for desktop-wide clicks.
Bright accents let Portal 2 Soft stay crisp on light and dark pages. Fan-made only - not affiliated with or endorsed by Valve.
Round out your set with the Portal 2 Classic Cursor Pack, the undefined, and the undefined.
Install Portal 2 Soft and give your mouse a playful Portal upgrade today.
Customize your embed code and preview it in real time below.
Live preview
<style type="text/css">
body {
cursor: url(https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/arrow.png) 4 4, auto;
}
a, button, .clickable {
cursor: url(https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/hand.png) 4 4, pointer;
}
</style>
<a href="https://cutecursors.com//category/portal/portal-2-cute-cursors-cute-cursor" title="Get free Portal 2 cursors for your website.">
Portal 2 Cursors
</a>/* components/CuteCursor.jsx */
"use client";
import { useEffect } from "react";
const CURSOR = "https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/arrow.png";
const POINTER = "https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/hand.png";
export default function CuteCursor() {
useEffect(() => {
const style = document.createElement("style");
style.innerHTML = `
body { cursor: url(${CURSOR}) 4 4, auto; }
a, button, .clickable { cursor: url(${POINTER}) 4 4, pointer; }
`;
document.head.appendChild(style);
return () => style.remove();
}, []);
return null;
}
/* Usage: render <CuteCursor /> once, e.g. in your root layout or App:
<CuteCursor />
Portal 2 cursors by https://cutecursors.com//category/portal/portal-2-cute-cursors-cute-cursor */-- Portal 2 custom cursor for Roblox
-- LocalScript (place it in StarterPlayer > StarterPlayerScripts)
--
-- 1) Download the cursor images (buttons above) or grab them here:
-- Cursor: https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/arrow.png
-- Pointer: https://cdn.cutecursors.com/db/portal_2_cute_cursors_cute_cursor/hand.png
-- 2) Upload them in Roblox Creator Hub as Decals (Create > Decals).
-- 3) Replace the IDs below with your uploaded Image asset IDs.
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local CURSOR_ICON = "rbxassetid://CURSOR_ASSET_ID"
local POINTER_ICON = "rbxassetid://POINTER_ASSET_ID"
-- Set the default cursor
UserInputService.MouseIcon = CURSOR_ICON
-- Optional: switch to the pointer icon while hovering GUI buttons
local function hookButton(button)
button.MouseEnter:Connect(function()
UserInputService.MouseIcon = POINTER_ICON
end)
button.MouseLeave:Connect(function()
UserInputService.MouseIcon = CURSOR_ICON
end)
end
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
for _, gui in ipairs(playerGui:GetDescendants()) do
if gui:IsA("GuiButton") then
hookButton(gui)
end
end
playerGui.DescendantAdded:Connect(function(gui)
if gui:IsA("GuiButton") then
hookButton(gui)
end
end)
-- Portal 2 cursors: https://cutecursors.com//category/portal/portal-2-cute-cursors-cute-cursorHow to Install Portal 2 cursors
How to Install cursor Portal 2 for Chrome
Portal 2
Grab the Portal 2 Soft cute cursor - a free custom cursor pack for Portal fans.
- 1Go to Chrome Web Store
Hit the 'Add to Browser' button to get the 'Portal 2' pack.
- 2Add the Extension
On the Chrome Web Store, smash that ‘Add to Chrome’ button and confirm.
- 3Pin for Easy Access
Pro-tip: Pin the 'Cute Cursors' extension to your toolbar for quick access.
- 4Activate Your Cursor
Open the extension, find the 'Portal 2' pack, and click to activate. Easy peasy!
You may also like
Explore other cursor packs from our collection
Didn't Find Your Vibe?
Our universe of cursors is huge. Dive into hundreds of unique collections and find the one that truly represents you.
Explore All Collections
