jupyter / jupyter/notebook

Superfluous empty space at the bottom of notebook

Open
#7,455 5 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Jupyter Notebook
Stars
13.3k
Forks
5.8k
Avg merge
6d 11h
Merged PRs (30d)
7

Description

## Description

Way too much empty space at the bottom of notebooks in Jupyter Notebook 7.

## Reproduce

1: Create new notebook
2: Create empty cells to fill the screen
2: Scroll down (by letting your mouse wheel run free, if you have such a mouse wheel).
3: Your entire screen is now filled with empty space and you have to scroll back up by hand to get to what you wanted: the last cell.

![image](https://github.com/user-attachments/assets/7fe091c6-5559-43dc-ae2d-f1118e943328)

## Expected behavior

Same as any other text editor: scroll to the bottom of the existing content.

![image](https://github.com/user-attachments/assets/abb3636e-2f92-43d1-b439-a35a02515423)

## Context

- Operating System and version: Ubuntu 22.04,
- Browser and version: Chrome 126
- Jupyter Notebook version: 7.1.1

Troubleshoot Output

$PATH:

/usr/local/cuda/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/local/go/bin

sys.path:
/usr/lib/python310.zip
/usr/lib/python3.10
/usr/lib/python3.10/lib-dynload

sys.executable:

sys.version:
3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]

platform.platform():
Linux-5.15.0-91-generic-x86_64-with-glibc2.35

which -a jupyter:
/usr/local/bin/jupyter

pip list:
Package Version Editable project location
----------------------------------- --------------- -------------------------
adbc-driver-manager 1.1.0
adbc-driver-postgresql 1.1.0
aiofiles 23.2.1
aiohttp 3.9.3
aiosignal 1.3.1
annotated-types 0.7.0
ansi2html 1.9.1
anyio 4.3.0
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
armada_client 0.3.4
arrow 1.3.0
asttokens 2.4.1
async-lru 2.0.4
async-timeout 4.0.3
attrs 23.2.0
Babel 2.14.0
beautifulsoup4 4.12.3
benchmark 0.1
bleach 6.1.0
Brotli 1.1.0
bson 0.5.10
cached-property 1.5.2
cachetools 5.4.0
certifi 2024.2.2
cffi 1.16.0
chardet 5.2.0
charset-normalizer 3.3.2
click 8.1.7
clipboard 0.0.4
cloudpickle 3.0.0
comm 0.2.1
confluent-kafka 2.5.0
contourpy 1.2.0
cryptography 42.0.5
cycler 0.12.1
dash 2.10.2
dash-core-components 2.0.0
dash-html-components 2.0.0
dash-table 5.0.0
dataframe-dustins 0.0.1
debugpy 1.8.1
decorator 5.1.1
defusedxml 0.7.1
dill 0.3.8
docker 7.1.0
docopt 0.6.2
duckdb 1.0.1.dev5328
EasyProcess 1.1
entrypoint2 1.1
et-xmlfile 1.1.0
exceptiongroup 1.2.0
execnet 2.1.1
executing 2.0.1
fastjsonschema 2.19.1
filelock 3.15.4
Flask 2.1.2
fonttools 4.49.0
fqdn 1.5.1
frozenlist 1.4.1
ghdiff 0.4
google-auth 2.33.0
graphviz 0.20.1
greenlet 3.0.3
grpcio 1.58.0
grpcio-tools 1.58.0
gssapi 1.8.3
h11 0.14.0
hdfs 2.7.3
httpcore 1.0.4
httpx 0.27.0
human-id 0.2.0
hvac 2.3.0
idna 3.6
importlib_resources 6.4.0
inflate64 1.0.0
iniconfig 2.0.0
ipyaggrid 0.5.2
ipykernel 6.29.3
ipython 8.22.1
ipywidgets 8.1.2
isoduration 20.11.0
itsdangerous 2.1.2
jedi 0.19.1
Jinja2 3.1.3
joblib 1.3.2
json5 0.9.17
jsonpointer 2.4
jsonschema 4.21.1
jsonschema-specifications 2023.12.1
jupyter 1.0.0
jupyter_client 8.6.0
jupyter-console 6.6.3
jupyter_core 5.7.1
jupyter-dash 0.4.2
jupyter-events 0.9.0
jupyter-lsp 2.2.3
jupyter_server 2.12.5
jupyter_server_terminals 0.5.2
jupyterlab 4.1.2
jupyterlab_iframe 0.5.0
jupyterlab_pygments 0.3.0
jupyterlab_server 2.25.3
jupyterlab_widgets 3.0.10
kaleido 0.2.1
kiwisolver 1.4.5
krb5 0.5.1
kubernetes 30.1.0
llvmlite 0.42.0
Markdown 3.6
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.8.3
matplotlib-inline 0.1.6
mdurl 0.1.2
mistune 3.0.2
mondrian 0.1
multidict 6.0.5
multimethod 1.10
multivolumefile 0.2.3
mypy-extensions 1.0.0
mypy-protobuf 3.3.0
nbclient 0.9.0
nbconvert 7.16.1
nbformat 5.9.2
nest-asyncio 1.6.0
nodeenv 1.9.1
notebook 7.1.1
notebook_shim 0.2.4
numba 0.59.0
numexpr 2.10.0
numpy 1.26.4
oauthlib 3.2.2
openpyxl 3.1.2
overrides 7.7.0
packaging 23.2
pandas 2.2.1
pandera 0.19.3
pandocfilters 1.5.1
parso 0.8.3
pathlib 1.0.1
patsy 0.5.6
pem 23.1.0
pexpect 4.9.0
pillow 10.2.0
pip 24.0
pipdeptree 2.16.1
pkce 1.0.3
platformdirs 4.2.0
plotly 5.22.0
pluggy 1.5.0
polars 1.1.0
prometheus_client 0.20.0
prompt-toolkit 3.0.43
protobuf 4.25.4
protobuf3-to-dict 0.1.5
psutil 5.9.8
ptyprocess 0.7.0
pure-eval 0.2.2
py7zr 0.20.8
pyarrow 15.0.0
pyasn1 0.6.0
pyasn1_modules 0.4.0
pybcj 1.0.2
pycparser 2.21
pycryptodomex 3.20.0
pydantic 2.7.1
pydantic_core 2.18.2
Pygments 2.17.2
PyJWT 2.8.0
pyodbc 5.1.0
pyparsing 3.1.1
pyperclip 1.9.0
pyppmd 1.1.0
pyright 1.1.374
pyspnego 0.10.2
pytest 8.3.2
pytest-timeout 2.3.1
pytest-xdist 3.6.1
python-dateutil 2.9.0
python-json-logger 2.0.7
pytz 2024.1
pyunpack 0.3
PyYAML 6.0.1
pyzmq 25.1.2
pyzstd 0.15.9
qtconsole 5.5.1
QtPy 2.4.1
referencing 0.33.0
requests 2.31.0
requests-gssapi 1.3.0
requests-kerberos 0.14.0
requests-oauthlib 2.0.0
retrying 1.3.4
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rich 13.7.1
rpds-py 0.18.0
rsa 4.9
ruff 0.5.5
scikit-learn 1.5.1
scipy 1.12.0
semver 3.0.2
Send2Trash 1.8.2
setuptools 69.1.0
simplejson 3.19.2
six 1.16.0
sniffio 1.3.1
soupsieve 2.5
SQLAlchemy 2.0.32
stack-data 0.6.3
statsmodels 0.14.1
tabulate 0.9.0
tenacity 8.2.3
terminado 0.18.0
texttable 1.7.0
threadpoolctl 3.5.0
tinycss2 1.2.1
tomli 2.0.1
tornado 6.4
tornado-proxy-handlers 0.0.6
tqdm 4.66.2
traitlets 5.14.1
type_enforced 1.5.0
typeguard 4.1.5
types-protobuf 4.24.0.20240311
types-python-dateutil 2.8.19.20240106
typing_extensions 4.10.0
typing-inspect 0.9.0
tzdata 2024.1
uri-template 1.3.0
urllib3 2.2.1
wcwidth 0.2.13
webcolors 1.13
webencodings 0.5.1
websocket-client 1.7.0
Werkzeug 2.0.3
wheel 0.42.0
widgetsnbextension 4.0.10
wrapt 1.16.0
yarl 1.9.4
zstandard 0.22.0

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. First reproduce the scrolling behavior in Jupyter Notebook 7.1.1 using the listed steps, then trace the notebook frontend's scroll handling and identify an appropriate regression test location. Done means scrolling stops at the bottom of the last cell without leaving excessive empty space.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook
Domain
frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.